擅长:python、mysql、java
<p>Unicode不等于UTF-8。后者只是前者的<em>编码</em>。</p>
<p>你这样做是不对的。您正在读取编码的UTF-8-<em>数据,因此必须将UTF-8编码的字符串解码为unicode字符串。</p>
<p>所以只要用<code>.decode</code>替换<code>.encode</code>,它就应该工作了(如果您的.csv是UTF-8编码的)。</p>
<p>不过,没什么好羞愧的。我敢打赌,五分之三的程序员一开始很难理解这一点,如果不是更多的话;)</p>
<p>更新:
如果您的输入数据是<em>而不是</em>UTF-8编码的,那么您当然必须使用适当的编码。如果没有给出任何内容,python将采用ASCII,这显然会在非ASCII字符上失败。</p>