令人头疼的Python编码错误,如何解决?
这些问题让我一直很困扰。为什么会这样呢?看起来我的控制台无法处理某种编码。而我的浏览器和文字处理软件却能处理这些编码。我没有一个完整的列表来列出所有可能导致问题的字符。有没有什么好的办法可以解决这个问题,而不需要修改我的数据呢?
'charmap' codec can't encode character u'\xca'
1 个回答
2
你需要了解你的控制台使用的编码是什么(比如系统、操作系统等等)。'charmap'
这个词其实有点模糊,它并不能明确指代某一种编码,正如文档所解释的:
还有一类编码(所谓的charmap编码)选择了所有unicode字符点中的一个不同子集,并且定义了这些字符点是如何映射到字节0x0到0xff的。想要了解具体是怎么做的,可以打开比如encodings/cp1252.py这个文件(这个编码主要在Windows上使用)。里面有一个包含256个字符的字符串常量,展示了每个字符是如何对应到每个字节值的。
所有这些编码只能编码256个在unicode中定义的65536(或者1114111)个字符点。
也就是说,它只是列出了一些可能的编码,而不是指明某一种特定的编码。
一旦你知道你的控制台支持一个叫'foobar'
的编码,就可以把你现在的语句
print(someunicode)
改成
print(someunicode.encode('foobar'))