Учитывая следующий код запуска из интерпретатора Python:Python Юникода работает в 2.6.1 на OSX, но не в 2.6.5 на Ubuntu
import sys
sys.getdefaultencoding()
my_string = '\xc3\xa9'
my_string = unicode(my_string, 'utf-8')
my_string
print my_string
С Python 2.6.1 работает на Mac, все работает штраф:
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> my_string = '\xc3\xa9'
>>> my_string = unicode(my_string, 'utf-8')
>>> my_string
u'\xe9'
>>> print my_string
é
>>>
С Python 2.6.5 работает на Ubuntu 10.04 LTS, он не:
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> my_string = '\xc3\xa9'
>>> my_string = unicode(my_string, 'utf-8')
>>> my_string
u'\xe9'
>>> print my_string
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128)
>>>
что-то изменилось между Py thon 2.6.1 и 2.6.5, которые требуют различной обработки строк Unicode? Или это связано с чем-то неправильно сконфигурированным в моей (по умолчанию Ubuntu server 10.04 LTS) среде linux?
Редактировать: Обе среды имеют ЛАНГ = en_US.UTF-8
Забавная история, хотя вопрос был о 'Python Unicorn' –
Какой эмулятор терминала вы используете под Ubuntu? – unutbu
Я не уверен. Я использую ssh из терминала в моем mac. Сервер безголовый, работает на Rackspace, и я установил его с минимальными материалами (в основном apache и pylons). – Karl