Python无法解码字符集
问题描述:
我一直在使用程序来处理滴答数据。最近它开始处理文件时就停止工作并崩溃。看起来供应商呈现数据的方式有所改变。Python无法解码字符集
所以我们可以说我只需运行:
with open("N:\\2017\\2017-09-28 Daily.CAP") as f:
i = 0
while True:
c = f.read(1)
我得到这个错误:
Traceback (most recent call last):
File "C:/Users/b.karjoo/Documents/PycharmProjects/untitled1/test.py", line 4, in <module>
c = f.read(1)
File "C:\Users\b.karjoo\py3_virt_env\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 1799: character maps to <undefined>
有什么建议?
答
我希望这将解决该问题
with open(filename, encoding="cp437") as file:
但如果你的文件的编码类型不CP437和别的东西除了那个,如果您使用记事本++来查看你的文件,你可以检查它的编码如果您使用文本崇高点击
Encoding, which will show the type of encoding.
键入去
View -> Show Console
Type into field at bottom view.encoding() and it will give you the encoding type.
我无法用np ++打开文件,因为它说20gb太大了。 utf8给出同样的错误。于是我开始逐个浏览所有的编码选项。最后我诉诸了cp437,我没有得到错误。不知道编码是否实际上是cp437,但它的工作原理。 – bkarj
所以你做了encoding =“cp437”是吗? –
是的,这正是我所做的 – bkarj