加载数据时Django中的Unicode错误

时间:2013-10-12 04:11:39

标签: python django unicode encoding utf-8

所以我正在尝试将此行加载为模型的名称:

"Auf der grünen Wiese (1953)"

但我收到了错误

UnicodeDecodeError: 'utf8' codec can't decode byte 0xfc in position 70: invalid start byte

我在看:http://docs.python.org/2/howto/unicode.html#the-unicode-type 但我仍然不确定这个问题的解决方法。我可以将它作为unicode转换,可以选择替换/忽略错误,但我认为这不是最理想的解决方案吗?

我也看到django提供了一些函数来帮助解决这个问题:https://docs.djangoproject.com/en/dev/ref/unicode/但我仍然不太确定如何处理它。

1 个答案:

答案 0 :(得分:3)

该行使用latin1进行编码。要正确解码它 你应该做(假设Python 2.x):

line = 'Auf der gr\xfcnen Wiese (1953)'
name = line.decode('latin1')

如果您正在从文件中阅读此内容,您也可以这样做:

f = codecs.open(path, 'r', 'latin1')
name = f.readline().strip()