通过ReadFile(src, encoding="UTF-8-SIG")和WriteFile(dst, contents, encoding="UTF-8")解码utf-8-sig编码的txt文件并编码成utf-8的txt文件,读取过程中通过utf-8-sig解码的内容出现�,生成的utf-8文件也有�,这是什么原因?应该如何解决?
时间: 2024-03-06 16:47:56 浏览: 143
VBS实现GB2312,UTF-8,Unicode,BIG5编码转换工具
这个问题可能是由于编码格式不一致导致的。在读取文件时,使用了UTF-8-SIG解码编码格式为UTF-8带有BOM的文件,在写入文件时,使用UTF-8进行编码。这个过程可能会导致一些字符无法正常转换,从而出现�符号。
为了解决这个问题,可以在写入文件时,使用UTF-8-SIG进行编码,这样可以保留BOM头信息,从而避免出现�符号。具体实现可以使用以下代码:
```
with open(src, 'r', encoding='utf-8-sig') as f:
contents = f.read()
with open(dst, 'w', encoding='utf-8-sig') as f:
f.write(contents)
```
这样就可以避免出现�符号了。
阅读全文