[python]Вывод уникодных строк в режиме repr(...)

Dmitriy82


>>> print [u"хз"]
[u'\u0445\u0437']

При выводе уникодных строк в составе структур все символы сверх 127 заменяются на коды. Как добиться нормального вывода этих символов (например, как-нибудь задать кодировку для стандартной процедуры печати)?

tokuchu

LANG="ru_RU.UTF-8" ?

tipnote

По-моему, repr для встроенных типов всегда возвращает строку, а не юникод. И также по-моему, "правильных" способов безболезненно это изменить нет. Поэтому либо не пользуемся repr, либо ждем py3000, либо пользуемся своим типом. Например:

# -*- coding: utf-8 -*-

class L(list):
def __init__(self,*args):
list.__init__(self,args)

def __repr__(self):
return '[%s]'%(','.join(map(lambda s: unicode(s).encode('utf-8'self

print L(1,2)
print L('x3','x32')
print L(u'хз',u'хз2')


art:~/webdev/hotel$ python t.py
[1,2]
[x3,x32]
[хз,хз2]
Оставить комментарий
Имя или ник:
Комментарий: