utf8 escape caracteres python string unicode python-2.x python-unicode

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…