python utf-8日语

python utf-8日语,python,unicode,utf-8,Python,Unicode,Utf 8,我想将一些日语单词转换为utf-8,如下所示: jap_word1 = u'中山' jap_word2 = u'小倉' print jap_word1.encode('utf-8') # Doesn't work print jap_word2.encode('utf-8') # Prints properly 为什么一个单词可以正确地转换为utf-8并打印以显示相同的字符,而另一个却不能 (我在Windows7Ultimate上使用python 2.6)因为您的控制台不在UTF-8中。在

我想将一些日语单词转换为utf-8,如下所示:

jap_word1 = u'中山'
jap_word2 = u'小倉'

print jap_word1.encode('utf-8') # Doesn't work 
print jap_word2.encode('utf-8') # Prints properly
为什么一个单词可以正确地转换为utf-8并打印以显示相同的字符,而另一个却不能


(我在Windows7Ultimate上使用python 2.6)

因为您的控制台不在UTF-8中。在运行之前运行chcp 65001。

很多东西必须对齐才能正确打印字符:

  • 脚本保存在什么编码中
  • 您的脚本中是否有
    #coding:xxxx
    语句,其中xxxx与保存文件的编码匹配
  • 您的输出终端支持您的编码吗<代码>导入系统;打印系统标准编码 A.如果没有,您可以更改控制台编码吗?(
    chcp
    Windows上的命令)
  • 您使用的字体是否支持字符
  • 将脚本保存在UTF-8中,这在PythonWin和IDLE中都有效

    # coding: utf-8
    jap_word1 = u'中山'
    jap_word2 = u'小倉'
    
    print jap_word1
    print jap_word2
    
    有趣的是,我在IDLE中将
    .encode('utf-8')
    添加到两个打印中得到了您的结果,但它在Pythonwin中工作正常,Pythonwin的默认输出窗口支持utf-8


    懒惰是一种怪兽
    sys.stdout.encoding
    在我的系统上生成
    'cp1252'
    ,它不支持亚洲字符,但在UTF-8中打印时,第一个单词打印错误,第二个单词打印正确。

    第二个打印可能是word2?感谢您指出这一点。更正了。我强烈建议你用“jp”作为日语的缩写,而不是“jap”,以避免种族主义的含义。在这种情况下,你的意思显而易见。。。但我还是注意到了。jp是标准的。是的,我觉得这很奇怪,因为我用的是Python空闲。有趣的是,只有一些字符被正确转换,而其余的字符没有被正确转换。当我在Ubuntu的python控制台中进行转换时,我也没有遇到任何问题。但对于Windows 7中的Python空闲,天哪。。。