我使用scapy来显示数据包的所有层,当数据包具有UDP层和Raw时,它有时会给我一个"UnicodeDecodeError:"charmap"编解码器无法解码字节…"我不知道该怎么办。。帮助这是造成麻烦的代码行:
self.txt.SetValue(str(pkt.getlayer(Raw).load))
我需要一种在TextCtrl中显示原始数据的方法。
尝试以unicode而不是字符串形式传递数据:
self.txt.SetValue(u'%s' % (pkt.getlayer(Raw).load))
如果这不起作用,我不会太惊讶,所以一定要阅读如何在Python中使用unicode:
- https://docs.python.org/2/howto/unicode.html
您还应该查看以下文章:
- http://wiki.wxpython.org/UnicodeBuild
- http://kevino.theolliviers.com/python-unicode.html
- http://zetcode.com/wxpython/in18/
- http://wiki.wxpython.org/Internationalization
如果所有其他操作都失败了,您可以随时尝试使用以下有趣的包将unicode转换为ascii:
- https://pypi.python.org/pypi/Unidecode