Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 16, 2012 18:44:21

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

list в utf-8

>>> hex_str = 'спам'
>>> l = [hex_str]
>>> print repr(l).decode('string_escape')
['спам']

Офлайн

#2 Сен. 20, 2012 10:32:31

duh386
От:
Зарегистрирован: 2012-01-16
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

list в utf-8

JOHN_16
Давайте весь код. А то по этой гуще даже не погадаешь. Никакой адекватной информации нет.

А что тут детализировать? Есть любой список со строками unicode, при использовании print my_unicode_list используется repr, которая неверно отображает символы. Возможно сработает создание своего типа, унаследованного от list, но это будет уж очень неудобно.

adray
>>> hex_str = ‘спам’
>>> l =
>>> print repr(l).decode('string_escape')


Вот это работает:
>>> l = ['лист', 'лист2']
>>> print repr(l).decode('string_escape')
['лист', 'лист2']

А вот это - нет :(
>>> l = [u'лист', u'лист2']
>>> print repr(l).decode('string_escape')
[u'\u043b\u0438\u0441\u0442', u'\u043b\u0438\u0441\u04422']



Отредактировано duh386 (Сен. 20, 2012 10:40:36)

Офлайн

#3 Сен. 20, 2012 11:49:01

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

list в utf-8

repr(l).decode('unicode_escape')

Офлайн

#4 Сен. 20, 2012 14:07:01

duh386
От:
Зарегистрирован: 2012-01-16
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

list в utf-8

adray
Да, верно, так работает

>>>l = [u'лист', u'лист2']
>>> print repr(l).decode('unicode_escape')
[u'лист', u'лист2']



Отредактировано duh386 (Сен. 20, 2012 14:09:16)

Офлайн

#5 Сен. 20, 2012 17:58:46

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

list в utf-8

А есть по аналогии с __str__() и __unicode__() __repr__() и __unicode_repr__()?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version