尽管指定了编码,但Python STILL不允许使用日文字符

Mat*_*hew 2 python unicode

#!/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中使用它时出现这种瑕疵:(任何想法?

sor*_*rin 6

您指定了源文件的编码,并假设使用UTF-8保存了文件.

你还在stdout用,ascii所以失败是正常的.

你有一个编码问题而不是解码问题,Python确实很好地读取你的Unicode字符,如果选择正确的编码,可能会将它们保存在文件中.

尽管如此,stdout并不总是与Unicode兼容,尤其是在Windows上.

你可以这样做:sys.stdout.write(strin.encode(utf-8))你不会得到错误,但这并不意味着你会看到屏幕上的字符.