是否有人有这个问题与vscode



我有一个.txt文件,在£中有磅符号。当我使用filename.read()时,它会打印出应有的井号,但它也会打印出另一个我没有添加的字母,即Â

有人知道这是怎么回事吗?

文件编码为UTF-8,但读取为(可能)Windows-1252。

两个字符的原因是UTF-8是多字节编码,井号编码为C2 A3,但是Windows-1252是单字节编码,井号仅编码为A3C2在Windows-1252中是Â.

的例子:

>>> with open('test.txt','w',encoding='utf8') as f:
...   f.write('£')
...
1
>>> with open('test.txt') as f:  # default encoding...on windows usually Windows-1252
...   print(f.read())
...
£

用UTF-8编码打开文件:

>>> with open('test.txt',encoding='utf8') as f:
...   print(f.read())
...
£

如果符号在源代码中,请确保Visual Studio code已配置为UTF-8开源。

最新更新