Python Конвертировать строки Unicode-Hex utf-8 в строки Unicode - PullRequest
5 голосов
/ 30 сентября 2011

Имеется s = u'Gaga\xe2\x80\x99s', но необходимо преобразовать в t = u'Gaga\u2019s'

Как этого лучше всего достичь?

Ответы [ 3 ]

8 голосов
/ 30 сентября 2011
s = u'Gaga\xe2\x80\x99s'
t = u'Gaga\u2019s'
x = s.encode('raw-unicode-escape').decode('utf-8')
assert x==t

print(x)

урожайность

Gaga’s
7 голосов
/ 30 сентября 2011

Где бы вы ни декодировали исходную строку, она, скорее всего, была расшифрована латинским-1 или близким родственником. Поскольку latin-1 - это первые 256 кодовых точек Unicode, это работает:

>>> s = u'Gaga\xe2\x80\x99s'
>>> s.encode('latin-1').decode('utf8')
u'Gaga\u2019s'
2 голосов
/ 30 сентября 2011
import codecs

s = u"Gaga\xe2\x80\x99s"
s_as_str = codecs.charmap_encode(s)[0]
t = unicode(s_as_str, "utf-8")
print t

отпечатки

u'Gaga\u2019s'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...