python utf-8 japanese

时间:2011-02-05 17:58:16

标签: 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并打印显示相同的字符而不是另一个?

(我在Windows 7旗舰版上使用python 2.6)

2 个答案:

答案 0 :(得分:1)

许多事情必须对齐才能正确打印字符:

  1. 脚本保存的编码是什么?
  2. 您的脚本中是否有# coding: xxxx语句,其中xxxx与保存文件的编码相匹配?
  3. 您的输出终端是否支持您的编码? import sys; print sys.stdout.encoding 一个。如果没有,你可以更改控制台编码吗? (Windows上的chcp命令)
  4. 您使用的字体是否支持字符?
  5. 将脚本保存为UTF-8,这适用于PythonWin和IDLE。

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

    有趣的是,我在IDLE的两个打印件中添加了.encode('utf-8')得到了你的结果,但它在Pythonwin中正常工作,其默认输出窗口支持UTF-8。

    空闲是一种奇怪的野兽。我的系统上的sys.stdout.encoding会生成'cp1252',它不支持亚洲字符,但在以UTF-8打印时,它会输出错误的第一个字和第二个字。

答案 1 :(得分:0)

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