#!/usr/bin/env python
# -*- coding: utf8 -*-
print "私"
print u"私"
结果是:
ç§
UnicodeEncodeError: 'ascii' codec can't encode character u'\u79c1' in position 0: ordinal not in range(128)
或者,对于u“私”和“私”都处于空闲状态:
>>> print "私"
Unsupported characters in input
我已经遵循了所有我能找到的建议,那就是我必须把“编码”行放在shebang下面。我所有的网页浏览器都显示汉字,我可以很好地输入。但当我尝试在Python中使用这个garble时,它就出来了:(有什么想法吗?
您需要一个支持UTF8的终端或IDE,或者至少需要一个支持日语的编码。PythonWin来自Pywin32扩展库,是一个可以工作的IDE。
您指定了源文件的编码,并假定使用UTF-8保存了这些文件。
你的
stdout
仍然在使用ascii
,因此失败是正常的。您有一个编码问题而不是解码问题,Python确实可以很好地读取Unicode字符,如果您选择了正确的编码,可能可以将它们保存在文件中。
不过,stdout并不总是与Unicode兼容,特别是在Windows上。
你可以这样做:
sys.stdout.write(strin.encode(utf-8))
,你不会得到一个错误,但这并不意味着你会看到屏幕上的字符。试试这个:
相关问题 更多 >
编程相关推荐