擅长:python、mysql、java
<p>如果文件中有<code>"José"</code>,则文件查看器读取/显示的数据不正确。它是UTF-8,但是用错误的编码解码。示例:</p>
<pre><code>import locale
# Correctly written
with open('file.txt','w',encoding='utf8') as f:
f.write('José')
# The default encoding for open()
print(locale.getpreferredencoding(False))
# Incorrectly opened
with open('file.txt') as f:
data = f.read()
print(data)
# What I think you are requesting as a fix.
# Re-encode with the incorrect encoding, then decode correctly.
print(data.encode('cp1252').decode('utf8'))
# Correctly opened
with open('file.txt',encoding='utf8') as f:
print(f.read())
</code></pre>
<p>输出:</p>
<pre><code>cp1252
José
José
José
</code></pre>