我有一个 Python 应用程序,可以从网站获取多语言信息,并将它们显示在一个小的 GUI 窗口中(基于 wxpython)。
我(目前)不在我的源文件中使用任何特定的 unicode 语句。
现在,当我从 Eclipse 中运行我的 python 应用程序时,法语字符(如 ë)显示得很好,当我从 py2exe 打包版本运行它时,字符变得不稳定。 我真的不明白为什么使用 py2exe 构建不会产生 unicode 或编码相关错误。
但是,要解决此问题,请遵循 this在文章中,我将我的字符串包装在 unicode(my_string, "utf-8")
调用中,就在将它输出到屏幕之前。这样就解决了。
问题:
- 是在显示之前在
unicode()
调用中包装字符串的好方法吗? - 为什么它在 Eclipse 中没有 unicode 转换就可以工作,而在 Windows 打包的 .exe 版本中却不能?
我已经多次尝试绕过 unicode,但似乎我不兼容 unicode :-|
最佳答案
最好的方法是确保字符串是 unicode 尽快。如果你正在抓取网站的图书馆没有用 unicode 证明你,那么他们就没有做他们应该做的事(恕我直言)。然后,您必须使用与您正在抓取的网页所使用的编码相同的编码,自行将它们解码为 unicode。
你的方法基本上是相反的,解码越晚越好。到目前为止,它能正常工作基本上纯属运气,因为您还没有遇到任何非 utf8 字符串。任何 iso-8859-1 字符串都会破坏您的应用。
关于Python,支持unicode的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175238/