Printing out text file in python gives error message - charmap_decode(input,errors,decoding_table)
本问题已经有最佳答案,请猛点这里访问。
我正在使用图形用户界面窗口中的wxpython在python中打印出文本文件的内容,但收到错误消息:
1 2 3 4 | return _core_.TextEntryBase_WriteText(*args, **kwargs) File"C:\Python27\lib\encodings\cp1252.py", line 15, in decode return codecs.charmap_decode(input,errors,decoding_table) UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 60: character maps to <undefined> |
这是文本文件中使其跳起来的行:
1 2 3 | <block count="55770" name="BASIC_LATIN"> !"%'(),-.0123456789:?ABCDEFGHIJKLMNOPQRSTUVWYZabcdefghijklmnopqrstuvwxyz</block> <block count="2" name="LATIN_1_SUPPLEMENT">é?</block> |
关于如何解决这个问题有什么想法吗?
在他们的wiki页面上有大量关于wxpython和unicode的信息:
- http://wiki.wxpython.org/unicodebuild
我总是使用wxpython的unicode构建。我认为wx的新版本可能只有unicode版本。不管怎样,正如Joaquin指出的,您还需要使用正确的编码打开文件。python无法猜测编码文件的unicode版本。如果您不关心保持Unicode,那么有一个名为unidecode的方便模块,我发现它对于将Unicode转换为ASCII很有用。