我有一个使用Python编写的应用程序,从网站获取多语言信息,并在一个小的GUI窗口(基于wxpython)中呈现它们。
目前我的源文件中没有使用任何特定的Unicode语句。
现在,当我在Eclipse中运行Python应用程序时,法语字符(如ë)会被正确显示,但是当我从py2exe打包的版本中运行它时,这些字符就会变得混乱。 我不太理解为什么,因为使用py2exe构建不会产生unicode或编码相关的错误。
然而,为了解决这个问题,我按照此文章的建议,在输出到屏幕之前将字符串包装在
问题:
目前我的源文件中没有使用任何特定的Unicode语句。
现在,当我在Eclipse中运行Python应用程序时,法语字符(如ë)会被正确显示,但是当我从py2exe打包的版本中运行它时,这些字符就会变得混乱。 我不太理解为什么,因为使用py2exe构建不会产生unicode或编码相关的错误。
然而,为了解决这个问题,我按照此文章的建议,在输出到屏幕之前将字符串包装在
unicode(my_string, "utf-8")
调用中。这解决了问题。问题:
- 在显示之前将字符串包装在
unicode()
调用中是否是正确的方法? - 为什么在Eclipse中不进行Unicode转换也能正常工作,但在Windows打包的.exe版本中却不能?
urllib2.urlopen()
进行获取,然后使用Beautiful Soup进行解析。根据BeautifulSoup的文档,它应该始终返回unicode。但是,如果我在任何一个Beautiful Soup返回的最终值上执行type(value)
,我得到的是<type 'str'>
而不是预期的<type 'unicode'>
(当我执行print value
时,它不会在字符串前面添加u
)。因此,我并不确定我是否真的在那里使用unicode。 - Rabarberski