Python打印unicode不显示正确的符号

sun*_*hit 8 python ubuntu python-unicode

我使用的是Ubuntu 12.04 LTS.当我在终端尝试这样的事情时:

rfx@digest:/usr/share/fonts/truetype/ttf-dejavu$ echo ??????????
??????????
Run Code Online (Sandbox Code Playgroud)

符号显示正确.但是如果尝试使用python 2.7打印unicode符号,我会得到:

>>> print u'???'
??????
Run Code Online (Sandbox Code Playgroud)

正如python显示我默认为终端使用utf-8编码:

>>> sys.stdout.encoding
'UTF-8'
Run Code Online (Sandbox Code Playgroud)

Col*_*lau 5

您的输入被终端错误地解密.这不是Python问题.

要证明它,请使用unicode表示:

myunicode = u'\u0430\u0431\u0432'
print myunicode
print myunicode.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

如果这不会???两次打印原始字符串,则需要正确配置终端仿真程序.