Valor de codificación Unicode de caracteres chinos en Python123
En Python, la codificación de los datos se puede cambiar mediante codificación y decodificación, por ejemplo:
gt; u'kanji'
u; ' \u6c49\u5b57'
gt;gt;gt; u'kanji'.encode('utf-8' )
'\xe6\xb1\x89\xe5\xad \ x97'
gt;gt;gt; u'kanji'.encode('utf-8').decode('utf-8')
u'\u6c49\ u5b57 '
Podemos usar estas dos funciones para configurar la codificación.
Entonces, ¿qué tipo es str en Python?
gt;gt;gt; importar binascii
gt;gt;gt; 'kanji'
'\xba\xba\xd7\xd6' p>
gt;gt;gt; p>
gt;gt;gt; tipo('kanji')
gt;gt;gt; imprimir binascii.b2a_hex('kanji')
babad7d6
gt;gt;gt; print binascii.b2a_hex(u'kanji')
Rastreo (última llamada más reciente):
Archivo "", línea 1, en
UnicodeEncodeError: el códec 'ascii' no puede codificar caracteres en
posición 0-1: el ordinal no está en el rango(128)
gt;gt;gt ; imprimir binascii.b2a_hex(u'kanji'.encode('utf-8'))
e6b189e5ad97
gt; gt; print binascii.b2a_hex(u'kanji' .encode('gbk '))
babad7d6
binascii convierte el binario de datos en ascii. de "caracteres chinos" es str, y el binario es babad7d6, y u'kanji' no se puede convertir a ascii, por lo que se informa el primer error al principio. La solución es usar .encode('utf-8') para convertirlo al tipo str. Dado que mi línea de comando es la codificación GBK predeterminada de Windows, todos los resultados de salida de u'hanzi'.encode('gbk') son los mismos que los resultados de 'caracteres chinos'.