我有一些日语单词我希望转换为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)
答案 0 :(得分:1)
许多事情必须对齐才能正确打印字符:
# coding: xxxx
语句,其中xxxx与保存文件的编码相匹配?import sys; print sys.stdout.encoding
一个。如果没有,你可以更改控制台编码吗? (Windows上的chcp
命令)将脚本保存为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
。