在Python2.6脚本的开头,我想把我的名字按拼写写出来,即“Joël”(trema on e)。所以我写__author__ = u'Joël'
,我可以通过一个简单的print __author__
来检索它。在
当我收到错误消息时,内置的help()
函数出现问题:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xeb' in position 2: ordinal not in range(128)
我不能升级到python3.x,我发现这个函数非常有用(对于那些将得到我的脚本的人来说,它肯定是有用的)。我还没有忘记用UTF-8编码文件,并通过添加以下内容在脚本中指定:
^{pr2}$你知道这是从哪里来的吗?在
提前感谢您的回答。在
编辑 再看一看“深入Python”一书,我发现了如何在我的机器上有一个正确的呈现,请参见http://www.diveintopython.org/xml_processing/unicode.html。在
我的想法是,Python的默认编码是ASCII,这确实阻止了help()生成正确的输出。我所做的是在{pythondir}\Lib\site-packages
中添加一个名为sitecustomize.py
的脚本,设置默认编码:
import sys
sys.setdefaultencoding('iso-8859-1')
现在,有了一个类似u'Joël'
的输入字符串,我通过调用help()得到了一个正确的输出。在
问题是,我很确定这会在别人的电脑上坏掉。你知道我怎么处理吗?在
Pydoc明确希望将作者名转换为ascii:
你不太可能解决这个问题。在
您需要使用简单字符串,而不是Unicode字符串。因此:
然后,内置的帮助方法将显示:
^{pr2}$编辑:如果这不起作用,则可以通过执行以下操作强制返回名称的8位字符串版本:
相关问题 更多 >
编程相关推荐