Quiero transferir unicode a caracteres ascii, transferirlos a través de un canal que solo acepte caracteres ascii y luego transformarlos nuevamente en unicode adecuado.

Estoy tratando con los caracteres unicode como ɑ en Python 3.5.

ord("ɑ") me da 63 con es lo mismo que ord("?") también me da 63. Esto significa que simplemente usando ord() y chr() no funciona. ¿Cómo obtengo la conversión correcta?

0
Christian 9 may. 2016 a las 18:48

3 respuestas

La mejor respuesta

Encontré mi error. Usé Python a través de la consola de Windows y la consola de Windows confundió el Unicode.

0
Christian 9 may. 2016 a las 16:08

Quiero transferir unicode a caracteres ascii, transferirlos a través de un canal que solo acepte caracteres ascii y luego transformarlos nuevamente en unicode adecuado.

>>> import json
>>> json.dumps('ɑ')
'"\\u0251"'
>>> json.loads(_)
'ɑ'
0
jfs 10 may. 2016 a las 19:49

Puede convertir un número en una cadena hexadecimal con "0x%x" %255 donde 255 sería el número que desea convertir en hexadecimal.

Para hacer esto con ord, puedes hacer "0x%x" %ord("a") o el personaje que quieras.

Puede eliminar la parte 0x de la cadena si no la necesita. Si desea que el hexadecimal se capitalice (A-F) use "0x%X" %ord("a")

0
Paul Virally 9 may. 2016 a las 16:05