Red de conocimiento informático - Problemas con los teléfonos móviles - Valor de codificación Unicode de caracteres chinos en Python123

Valor de codificación Unicode de caracteres chinos en Python123

La codificación predeterminada de Python es ascii, puede usar la función sys.setdefaultencoding('utf-8') para configurar la codificación predeterminada de Python.

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'

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'.