python编码

2024-10-02 04:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

这种错误怎么办?您正在从文件中读取行。你不知道编码。在

“字节0xed”是什么意思? “3792号位置”是什么意思?在

我会试着自己回答这个问题,然后转贴,但我有点恼火,因为我花了太多时间来解决这个问题。有没有一种删除/忽略并继续的方法来获得过去的未知编码?我只想读一个文本文件!在

Traceback (most recent call last):
  File "./test.py", line 8, in <module>
    for x in fin:
  File "/bns/rma/local/lib/python3.1/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 3792: ordinal not in range(128)

Tags: 方法inpymost编码字节错误line
2条回答

我想我找到了一个愚蠢的方法:):

fin = (x.decode('ascii', 'ignore') for x in fin)

for x in fin: print(x)

其中errors='ignore'可以是'replace'或其他。这至少遵循了我正在寻找的成语“垃圾进,垃圾出”。在

0xedí的unicode代码,它包含在输入的3792位置(也就是说,如果从第一个字母开始计数,那么3792个字母将是í)。在

您正在使用ascii编解码器对文件进行解码,但该文件不是ascii编码的,请尝试使用支持unicode的编解码器(utf_8可能?),或者,如果您知道用于写入文件的编码,请从available codecs的完整列表中选择适当的编码。在

相关问题 更多 >

    热门问题