5

我尝试在我的 Django 项目中上传和处理 CSV 文件,但出现编码错误,CSV 文件是在 Mac 上使用 excel 创建的。

reader = csv.reader(request.FILES['file'].read().splitlines(), delimiter=";")
    if withheader:
        reader.next()

data = [[field.decode('utf-8') for field in row] for row in reader]

使用此代码示例,我得到一个错误: http: //puu.sh/1VmXc

如果我使用 latin-1 解码,我会得到另一个“错误”..

data = [[field.decode('latin-1') for field in row] for row in reader]

结果是:v¾gmontere,结果应该是:vægmontere

有谁知道该怎么做?..我已经尝试了很多!

4

1 回答 1

4
  1. Python 2csv模块带有很多 unicode 麻烦。尝试unicodecsv改用Python 3。
  2. Mac 上的 Excel 以损坏的编码导出为 CSV。不要使用它,而是使用像 LibreOffice 这样有用的东西(具有更好的 CSV 导出选项)。
  3. 处理用户文件时:要么确保文件始终以 UTF-8 编码并且仅解码为 UTF-8(推荐),要么使用编码检测库,如chardet
于 2013-02-01T00:11:15.873 回答