|
|
|
|
 py2exe的字符编码问题 - JohnWu [ 2005-08-12 09:32 | 589 byte(s)]
 Re: py2exe的字符编码问题 - limodou [ 2005-08-14 19:10 | 359 byte(s)]
 Re: py2exe的字符编码问题 - JohnWu [ 2005-08-14 20:30 | 14 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
我的一个python程序需要用到gb18030字符集,根据高手的提示,在同一个目录写了一个sitecustomize.py:
import sys
sys.setdefaultencoding('gb18030')
我用py2exe编译这个程序,然而sitecustomize.py没有一同编译,运行程序时产生了Unicode错误。
py2exe网站上建议在程序前面加上:
import sys
if hasattr(sys,"setdefaultencoding"):
sys.setdefaultencoding("gb18030")
照做之后,用py2exe编译之后运行正常。
根据我的试验,第二段代码直接运行(python XXX.py)时是行不通的,那么为什么它在py2exe编译之后就能有效呢?
|
|
|
----
前进,你就会有信心。
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
不能说我回答得很准确,只能说是我的一个猜测:
如果在python环境下运行的话,它会运行一个site.py程序。其中有一个设置setdefaultencoding的处理,但处理完毕后就将这个方法从名字空间中给删除了。而这段处理是在运行你的程序之前由python自动做的,因此你再想使用setdefaultencoding这个方法的话会抛异常。而使用py2exe的话可能就不会有这样的处理,因此没有关系。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
|