gpt4 book ai didi

Python 使用错误的编码

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:04 25 4
gpt4 key购买 nike

使用 python 3.2,我尝试使用 str(bytes, "cp1251") 解码字节,但出现此错误:

Traceback (most recent call last):
File "C:\---\---\---\---.py", line 4, in <module>
writetemp.write(str(f.read(), "cp1251"))
File "C:\Python32\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 19-25: character maps to <undefined>

如您所见,我指定了“cp1251”,但它尝试使用“cp1252.py”而不是“cp1251.py”进行解码,我认为这会导致错误。如果我尝试使用“Windows-1251”而不是“cp1251”,也会发生同样的事情。

最佳答案

请注意您得到的是 UnicodeEncodeError不是 UnicodeDecodeError。该错误并非来自您的 str(f.read(), "cp1251") 调用。相反,它来自 writtemp.write() 调用。

str() 调用使用 cp1251 作为编码对您从 f.read() 获得的字节进行解码。这样可行。这为您提供了一个字符串(在 Python 3 中是 unicode。) writtemp.write() 然后必须通过编码将字符串转回字节。它使用您在打开 writtemp 时传递的编码或默认的 IO 编码(Python 试图根据各种事情来猜测)来执行此操作。您可以通过查看 来查看是哪种编码>encoding 文件对象的属性。您可能会发现它是 cp1252。如果你想用特定的编码编写,不要依赖 Python 猜测它;打开文件时明确指定编码。

关于Python 使用错误的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com