在 Python 2.6 脚本的开头,我想按拼写写出我的名字,即“Joël”(在 e 上带有 trema)。所以我写__author__ = u'Joël'
了,我可以通过一个简单的print __author__
.
内置help()
函数出现问题,因为我收到一条错误消息:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xeb' in position 2: ordinal not in range(128)
我无法升级到 Python 3.x,而且我发现这个功能非常有用(肯定会为那些将获得我的脚本的人)。我也没有忘记用 UTF-8 编码文件,并通过添加以下内容在脚本中指定它:
# -*- coding: utf-8 -*-
知道这是从哪里来的吗?
提前感谢您的回答。
编辑再次查看“Dive Into Python”一书,我发现了如何在我的机器上进行正确的渲染,请参阅http://www.diveintopython.org/xml_processing/unicode.html。
我的想法是,我对 Python 的默认编码是 ASCII,这确实阻止了 help() 做出正确的输出。我所做的是添加一个名为sitecustomize.py
in的脚本{pythondir}\Lib\site-packages
,设置默认编码:
import sys
sys.setdefaultencoding('iso-8859-1')
现在,输入字符串如u'Joël'
,我通过调用 help() 得到正确的输出。
问题是,我很确定这会在其他计算机上中断。知道我该如何处理吗?