Joë*_*oël 5 python author character-encoding pydoc
在我的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)
Run Code Online (Sandbox Code Playgroud)
我无法升级到Python 3.x,我发现这个功能非常有用(而且肯定会是那些将获得我的脚本的人).我也没有忘记用UTF-8编码文件,并通过添加以下内容在脚本中指定它:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
有什么想法来自何处?
提前感谢您的回答.
编辑再次查看"Dive Into Python"一书,我发现如何在我的机器上进行正确的渲染,请参阅http://www.diveintopython.org/xml_processing/unicode.html.
我的想法是,我对Python的默认编码是ASCII,这确实阻止了help()产生正确的输出.我所做的是添加一个名为sitecustomize.pyin in 的脚本{pythondir}\Lib\site-packages,设置默认编码:
import sys
sys.setdefaultencoding('iso-8859-1')
Run Code Online (Sandbox Code Playgroud)
现在,使用类似的输入字符串u'Joël',通过调用help()得到正确的输出.
问题是,我很确定这会破坏其他人的计算机.知道怎么处理这个吗?
Pydoc 明确想要将作者姓名转换为 ascii:
\n\n File "/usr/local/Cellar/python/2.7.1/lib/python2.7/pydoc.py", line 1111, in docmodule\n result = result + self.section(\'AUTHOR\', str(object.__author__))\nUnicodeEncodeError: \'ascii\' codec can\'t encode character u\'\\xeb\' in position 2: ordinal not in range(128)\nRun Code Online (Sandbox Code Playgroud)\n\n您不太可能解决这个问题。
\n| 归档时间: |
|
| 查看次数: |
2190 次 |
| 最近记录: |