我尝试使用pandas以文本文件格式读取我的数据集。但是,某些字符编码不正确。我有 ???撇号。
我该怎么做才能正确编码我的文件?我试过了
encoding = "utf8"
但我得到UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 2044: unexpected end of data
。
encoding = "latin1"
但这给了我很多???
encoding = "ISO-8859-1" or "ISO-8859-2"
但这也让我像没有编码一样......
当我在崇高中打开我的数据时,我得到了这个角色。
更新:但是当我使用loc访问该条目时,我得到的内容类似于\ u0102 \ u02d8 \ xe2 \ x82 \ u0179 \ xc2 \ u015,\ u0102 \ u02d8 \ xe2 \ x82 \ u0179 \ xe2 \ x84 \ u02d8
答案 0 :(得分:1)
您可以determine the encoding使用chardet:
$ pip install chardet
>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}
基本用法还建议您如何使用它来推断大文件的编码,例如文件太大而无法读入内存 - 它会读取文件,直到它对编码有信心。
根据this answer,您应该尝试encoding="ISO-8859-2"
:
我的猜测是您的输入编码为ISO-8859-2,其中包含Ă为
0xC3
。
注意:Sublime可能无法正确推断编码,因此您必须使用少量盐来获取它的输出,最好与您的供应商(无论您从何处获取文件)进行检查,实际编码是什么是... 的