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

标签 python unicode encoding

<分区>

Possible Duplicate:
Python UnicodeDecodeError - Am I misunderstanding encode?

我无法像这样在 Python 中打印一些 unicode 符号:

# encoding: utf-8
print u'ęėįųšįšū'

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

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)

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

命令在我的本地机器上正确运行。

文件已正确编码为 utf-8。

最佳答案

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

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

解决方案是根据您的脚本要求显式编码。

请务必阅读 Python Unicode HOWTO了解 Python 如何进行这种检测以及为什么它需要为您编码。

关于python - 为什么 Python 不能打印 Unicode 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456908/

相关文章:

python - 编辑 django-cms 页面时出现 TransactionManagementError

python - 根据 Django 中的模型, View /模板中项目的不同显示

python - 按列值复制 Pandas 数据框中的行并添加具有重复索引的新列

javascript - 如何在C中将UNICODE/UTF-8转换为GB2312

python - 在 Python 中 float 的未知编码(\x001,不是 ASCII)

html - 百分号 (%) 是否应始终进行 HTML 转义?

python - cv2.imwrite() 系统错误 : <built-in function imwrite> returned NULL without setting an error

delphi - 如何将 Unicode UTF-32(杂项符号和象形文字)分配(显示)给 TLabel.Caption?

ruby-on-rails-3 - 如何在 Rails 3 应用程序中自定义音译?

java - 无法从 Wiki 读取日文内容