为什么Python不能打印Unicode符号?

Eup*_*ium 7 python unicode encoding

可能重复:
Python UnicodeDecodeError - 我是否误解编码?

我在Python中打印一些unicode符号时遇到问题:

# encoding: utf-8
print u'????š?š?'
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Python 2.7在我的VPS Ubuntu 12服务器上运行它时,我收到一个错误:

UnicodeEncodeError:'ascii'编解码器无法编码0-7位的字符:序数不在范围内(128)

为什么它尝试用ASCII编码呢?

命令在我的本地计算机上正确运行.

该文件在utf-8中正确编码.

Mar*_*ers 9

打印unicode对象需要Python猜测输出编码并将Unicode代码点编码为该编码.

在VPS服务器上,输出编码似乎是ASCII,这是无法检测到编码时的默认值(例如使用管道时).如果在终端上运行相同的代码,通常会检测到终端编码并且编码成功.

解决方案是根据您的脚本要求明确编码.

请阅读Python Unicode HOWTO以了解Python如何进行此检测以及为什么需要为您编码.

  • @RashanGandi:如果你对这个问题有一个很好的欺骗目标,请随意投票以关闭.你也可能会得到我的投票.与此同时,我会尽我所能帮助提问. (5认同)
  • 请对每天提出的问题发表评论.您只重复常见问题解答. (2认同)