我正在通过Django上传文件控件读取CSV文件。
我想将½
(1/2)存储到数据库中,但它提供以下异常:
'utf8' codec can't decode byte 0xbd C.S.V. file 1/2 Char
UnicodeDecodeError at /admin/request_system/customers/upload/
'utf8'编解码器无法解码位置45的字节0xbd:无效的起始字节
答案 0 :(得分:3)
您的CSV文件不是utf8格式,因此解码器会看到无效(即非utf8)字节序列。找出正确的格式和/或将CSV文件重新保存为utf8,然后重新上传。
0xbd
是Latin-1中的½字符,所以这很可能是你现在所拥有的。 utf8将其表示为双字节序列\xc2\xbd
。
答案 1 :(得分:2)
您使用的是错误的字符集,可能是Windows-1252。它不是Unicode或utf-8。
s = s.decode('windows-1252')