#!/usr/bin/env python
# -*- coding: utf8 -*-
print "?"
print u"?"
Run Code Online (Sandbox Code Playgroud)
结果:
ç§
UnicodeEncodeError: 'ascii' codec can't encode character u'\u79c1' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
或者,在"私人"和"私人"中闲置:
>>> print "?"
Unsupported characters in input
Run Code Online (Sandbox Code Playgroud)
我已经按照我能找到的所有建议说我必须把"编码"线放在shebang下面.我所有的网页浏览器都显示汉字很好,我可以输入它.但是,当我尝试在Python中使用它时出现这种瑕疵:(任何想法?
您指定了源文件的编码,并假设使用UTF-8保存了文件.
你还在stdout
用,ascii
所以失败是正常的.
你有一个编码问题而不是解码问题,Python确实很好地读取你的Unicode字符,如果选择正确的编码,可能会将它们保存在文件中.
尽管如此,stdout并不总是与Unicode兼容,尤其是在Windows上.
你可以这样做:sys.stdout.write(strin.encode(utf-8))
你不会得到错误,但这并不意味着你会看到屏幕上的字符.