caracteres - unicode escape python
Cadena de Python para Unicode (3)
Posible duplicado:
¿Cómo trato una cadena ASCII como unicode y desinstalo los caracteres escapados en python?
Cómo convertir secuencias de escape Unicode a caracteres Unicode en una cadena de Python
Tengo una cadena que contiene caracteres Unicode, por ejemplo, /u2026 etc. De alguna manera, no se me recibe como unicode , pero se recibe como str . ¿Cómo lo convierto de nuevo a Unicode?
>>> a="Hello/u2026"
>>> b=u"Hello/u2026"
>>> print a
Hello/u2026
>>> print b
Hello…
>>> print unicode(a)
Hello/u2026
>>>
Así que claramente unicode(a) no es la respuesta. Entonces, ¿qué es?
Decodifícalo con el códec de unicode-escape :
>>> a="Hello/u2026"
>>> a.decode(''unicode-escape'')
u''Hello/u2026''
>>> print _
Hello…
Esto se debe a que para una cadena no unicode, /u2026 no se reconoce, sino que se trata como una serie literal de caracteres (para decirlo más claramente, ''Hello//u2026'' ). Necesita decodificar los escapes, y el códec de unicode-escape puede hacer eso por usted.
Tenga en cuenta que puede hacer que unicode reconozca de la misma manera especificando el argumento del códec:
>>> unicode(a, ''unicode-escape'')
u''Hello/u2026''
Pero el modo a.decode() es más agradable.
Unicode escapes solo funciona en cadenas Unicode, por lo que este
a="/u2026"
es en realidad una cadena de 6 caracteres: ''/', ''u'', ''2'', ''0'', ''2'', ''6''.
Para hacer unicode fuera de esto, use decode(''unicode-escape'') :
a="/u2026"
print repr(a)
print repr(a.decode(''unicode-escape''))
## ''//u2026''
## u''/u2026''
>>> a="Hello/u2026"
>>> print a.decode(''unicode-escape'')
Hello…