<p>Python 2.x CSV库已损坏。你有三个选择。按复杂程度排序:</p>
<ol>
<li><p>编辑:请参见下面的<strike>使用固定库<a href="https://github.com/jdunck/python-unicodecsv" rel="noreferrer">https://github.com/jdunck/python-unicodecsv</a>(<code>pip install unicodecsv</code>)。作为替换品使用-示例:</strike></p>
<pre><code>with open("myfile.csv", 'rb') as my_file:
r = unicodecsv.DictReader(my_file, encoding='utf-8')
</code></pre></li>
</ol>
<p/>
<ol start=“2”>
<li><p>阅读有关Unicode的CSV手册:<a href="https://docs.python.org/2/library/csv.html" rel="noreferrer">https://docs.python.org/2/library/csv.html</a>(请参阅底部的示例)</p></li>
<li><p>手动将每个项目编码为UTF-8:</p>
<pre><code>for cell in row.findAll('td'):
text = cell.text.replace('[','').replace(']','')
list_of_cells.append(text.encode("utf-8"))
</code></pre></li>
</ol>
<p><strong>编辑,我发现python unicodecsv在读取UTF-16时也断了。它抱怨任何<code>0x00</code>字节。</p>
<p>相反,使用<a href="https://github.com/ryanhiebert/backports.csv" rel="noreferrer">https://github.com/ryanhiebert/backports.csv</a>,它更类似于Python 3实现,使用<code>io</code>模块。。</p>
<p>安装:</p>
<pre><code>pip install backports.csv
</code></pre>
<p>用法:</p>
<pre><code>from backports import csv
import io
with io.open(filename, encoding='utf-8') as f:
r = csv.reader(f):
</code></pre>