擅长:python、mysql、java
<p>如果您的文件包含混合编码,您可以将其作为二进制读入内存,或者作为黑客,将其作为Latin-1打开,然后对每行上的<em>Title</em>字段进行单独解码</p>
<p>如果大部分数据编码为UTF-8,则可以尝试使用</p>
<pre><code>title.encode('latin-1').decode('utf-8 )
</code></pre>
<p>但是,如果解码失败,请后退并用拉丁语-1保存,或者用某种错误消息替换它</p>
<p>我不是一个喜欢熊猫的人,但快速的谷歌搜索让我有点像</p>
<pre><code>import pandas as pd
df = pd.read_csv('myFile.csv', encoding='latin-1')
def attempt_decode(x):
try:
return x.encode('latin-1').decode('utf-8')
except UnicodeDecodeError:
return 'Unable to decode: %s' % x)
df['Title'] = df['Title'].apply(attempt_decode)
</code></pre>
<p>Latin-1具有唯一的属性,即每个输入字节都与具有相同值的Unicode代码点完全对应,因此您永远不会得到解码错误(但是,显然,<a href="https://en.wikipedia.org/wiki/Mojibake" rel="nofollow noreferrer">mojibake</a>如果正确的编码是其他编码,并且您无法纠正它)</p>