关于wxpython:在python中打印出文本文件会出现错误信息–charmap_decode(input,errors,decoding_table)

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很有用。