Я получаю следующую строку из базы данных:
'23:45 \xe2\x80\x93 23:59'
и выход должен выглядеть так:
'23:45 - 23:59'
Как я могу декодировать это? Я пробовал декодировать utf-8, но не повезло
>>> x.decode("utf-8")
u'23:45 \u2013 23:59'
спасибо
Это совершенно правильно. Интерактивный интерпретатор python отображает строку repr()
строки. Если вы хотите увидеть его как правильную строку, print
ее:
>>> print '23:45 \xe2\x80\x93 23:59'
23:45 – 23:59
a="NOV–DEC 2011" (en-dash)
b=unidecode(a)
#output --> NOV-DEC 2011 (with hyphen)
Сначала вам нужно установить unidecode и импортировать его. Я пробовал, и он работает хорошо. Надеюсь, поможет!
Представление UTF-8 "en dash" http://www.fileformat.info/info/unicode/char/2013/index.htm - это hex 0xE2 0x80 0x93 (e28093) или u "\ u2013". Похоже, вы хотите заменить символ en-dash на ascii hyphen/minus (0x2d), чтобы сохранить его в переменной. Это нормально, но переменная не будет содержать тот же символ, который хранится в базе данных, не более, чем если вы заменили Ü (http://www.fileformat.info/info/unicode/char/dc/index.htm) с ascii U или заменить нуль (0x30) на капитал O (0x4f).
print u'23:45 \u2013 23:59'
вы также получите вывод23:45 – 23:59
.