Проблемы со строкой декодирования Python - PullRequest
1 голос
/ 03 ноября 2011

Я получаю следующую строку из базы данных:

'23:45 \xe2\x80\x93 23:59'  

и вывод должен выглядеть как

'23:45 - 23:59'  

Как мне это расшифровать? Я попытался расшифровать utf-8, но не повезло

>>> x.decode("utf-8")
u'23:45 \u2013 23:59'

Спасибо

Ответы [ 3 ]

7 голосов
/ 03 ноября 2011

Это совершенно правильно. Интерактивный интерпретатор Python отображает repr() строки. Если вы хотите увидеть его как правильную строку, print it:

>>> print '23:45 \xe2\x80\x93 23:59'
23:45 – 23:59
1 голос
/ 04 февраля 2014
a="NOV–DEC 2011" (en-dash)
b=unidecode(a)

#output --> NOV-DEC 2011 (with hyphen)

Сначала необходимо установить unidecode и импортировать его.Я попробовал это, и он работает хорошо.Надеюсь, это поможет!

1 голос
/ 03 ноября 2011

UTF-8-представление "en dash" http://www.fileformat.info/info/unicode/char/2013/index.htm - это шестнадцатеричное 0xE2 0x80 0x93 (e28093) или u "\ u2013".Звучит так, как будто вы хотите заменить символ дефиса на дефис / минус (0x2d), чтобы сохранить его в переменной.Это нормально, но переменная не будет содержать того же символа, который хранится в базе данных, больше, чем если бы вы заменили Ü (http://www.fileformat.info/info/unicode/char/dc/index.htm) на ascii U или заменили ноль (0x30) назаглавная O (0x4f).

...