В начале моих сценариев в Python 2.6 я хотел бы написать свое имя в том виде, как оно написано, то есть "Joël" (с тремой на 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)
Я не могу перейти на Python 3.x, и я нахожу эту функцию очень полезной (и она наверняка будет для тех, кто получит мои скрипты).Я также не забыл закодировать файлы в UTF-8 и указать его в сценариях, добавив следующее:
# -*- coding: utf-8 -*-
Есть идеи, откуда это взялось?
Спасибо зазаранее за ваши ответы.
РЕДАКТИРОВАТЬ Еще раз заглядывая в книгу «Dive Into Python», я узнал, как сделать правильный рендер на моей машине, см. http://www.diveintopython.org/xml_processing/unicode.html.
Идея заключается в том, что моя кодировка по умолчанию для Python была ASCII, и это помешало help () сделать правильный вывод.Я добавил сценарий с именем sitecustomize.py
в {pythondir}\Lib\site-packages
, установив кодировку по умолчанию:
import sys
sys.setdefaultencoding('iso-8859-1')
И теперь, когда входная строка записана как u'Joël'
, я получаю правильный выводчерез вызов помощи ().
Проблема в том, что я вполне уверен, что это сломается на компьютерах других пользователей.Любая идея, как я мог справиться с этим?