#!/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中使用它时,这个乱码就出来了:(有什么想法吗?
发布于 2011-07-07 05:36:37
您需要支持UTF8的终端或集成开发环境,或者至少支持日语的编码。来自Pywin32扩展库的PythonWin是一个可以工作的集成开发环境。
发布于 2011-07-05 23:30:54
您指定了源文件的编码,并假定使用UTF-8保存文件。
尽管如此,您的stdout
仍在使用ascii
,因此失败是正常的。
你有一个编码问题,而不是解码问题,Python可以很好地读取你的Unicode字符,如果你选择正确的编码,很可能能够将它们保存在一个文件中。
尽管如此,标准输出并不总是与Unicode兼容,特别是在Windows上。
你可以这样做:sys.stdout.write(strin.encode(utf-8))
,你不会得到一个错误,但这并不意味着你会看到屏幕上的字符。
发布于 2011-07-06 11:41:38
试试这个:
#!/usr/bin/env python
# -*- coding: utf8 -*-
print unicode("私","UTF-8")
https://stackoverflow.com/questions/6584984
复制相似问题