python utf-8 japanese

Tengo algunas palabras en japonés que deseo convertir a utf-8, como se muestra a continuación:

jap_word1 = u'中山' jap_word2 = u'小倉' print jap_word1.encode('utf-8') # Doesn't work print jap_word2.encode('utf-8') # Prints properly 

¿Por qué es que una palabra se puede convertir correctamente a utf-8 e imprimirse para mostrar los mismos caracteres pero no el otro?

(Estoy usando Python 2.6 en Windows 7 Ultimate)

Muchas cosas deben alinearse para imprimir los caracteres correctamente:

  1. ¿En qué encoding está guardado el script?
  2. ¿Tiene una instrucción # coding: xxxx en su script, donde xxxx coincide con la encoding en la que se guardó el archivo?
  3. ¿Su terminal de salida soporta su encoding? import sys; print sys.stdout.encoding import sys; print sys.stdout.encoding a. Si no es así, ¿puedes cambiar la encoding de la consola? (comando chcp en Windows)
  4. ¿La fuente que está utilizando soporta los caracteres?

Al guardar el script en UTF-8, esto funciona tanto en PythonWin como en IDLE.

 # coding: utf-8 jap_word1 = u'中山' jap_word2 = u'小倉' print jap_word1 print jap_word2 

Curiosamente, obtuve sus resultados con el .encode('utf-8') agregado a ambas impresiones en IDLE, pero funcionó correctamente en Pythonwin, cuya ventana de salida predeterminada admite UTF-8.

Inactivo es una bestia extraña. sys.stdout.encoding en mi sistema produce 'cp1252' , que no admite caracteres asiáticos, pero imprime la primera palabra incorrecta y la segunda a la derecha cuando se imprime en UTF-8.

Porque tu consola no está en UTF-8. Ejecute chcp 65001 antes de ejecutar.