【发布时间】:2011-06-16 14:21:20
【问题描述】:
在 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() 做出正确的输出。我所做的是在{pythondir}\Lib\site-packages中添加一个名为sitecustomize.py的脚本,设置默认编码:
import sys
sys.setdefaultencoding('iso-8859-1')
现在,输入字符串写成u'Joël',我通过调用 help() 得到正确的输出。
问题是,我很确定这会在其他计算机上中断。知道我该如何处理吗?
【问题讨论】:
标签: python character-encoding author pydoc