salto - Cómo convertir secuencias de escape Unicode a caracteres Unicode en una cadena de Python
operaciones con cadenas en python (3)
Dada una cadena de bytes con escapes Unicode b"/N{SNOWMAN}"
, b"/N{SNOWMAN}".decode(''unicode-escape)
producirá la cadena Unicode esperada u''/u2603''
.
Cuando traté de obtener el contenido de una etiqueta usando "unicode (head.contents [3])" obtengo el resultado similar a esto: "Christensen Sk / xf6ld". Quiero que la secuencia de escape se devuelva como una cadena. ¿Cómo hacerlo en Python?
Sospecho que está funcionando correctamente. De forma predeterminada, Python muestra cadenas en codificación ASCII, ya que no todas las terminales son compatibles con Unicode. Si realmente imprimes la cadena, debería funcionar. Vea el siguiente ejemplo:
>>> u''/xcfa''
u''/xcfa''
>>> print u''/xcfa''
Ïa
Suponiendo que Python ve el nombre como una cadena normal, primero tendrá que decodificarlo para unicode:
>>> name
''Christensen Sk/xf6ld''
>>> unicode(name, ''latin-1'')
u''Christensen Sk/xf6ld''
Otra forma de lograr esto:
>>> name.decode(''latin-1'')
u''Christensen Sk/xf6ld''
Observe la "u" delante de la cadena, indicando que es código. Si imprime esto, la letra acentuada se muestra correctamente:
>>> print name.decode(''latin-1'')
Christensen Sköld
Por cierto: cuando sea necesario, puede usar el método de "encode" para convertir el Unicode en, por ejemplo, una cadena UTF-8:
>>> name.decode(''latin-1'').encode(''utf-8'')
''Christensen Sk/xc3/xb6ld''