【问题标题】:Python print unicode doesn't show correct symbolsPython print unicode 不显示正确的符号
【发布时间】:2012-08-03 16:51:33
【问题描述】:

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

rfx@digest:/usr/share/fonts/truetype/ttf-dejavu$ echo вдлжофыдвж
вдлжофыдвж

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

>>> print u'абв'
ц│ц┌ц≈

正如 python 所示,我的终端默认使用 utf-8 编码:

>>> sys.stdout.encoding
'UTF-8'

【问题讨论】:

  • 这在 python 3.2 中会发生吗? unicode('абв')呢?
  • repr(u'абв') 得到什么?
  • >>> repr('абв') "'\\xc1\\xc2\\xd7'"
  • 那是repr('абв')repr(u'абв') 是什么?
  • 抱歉没有注意到。 >>> repr(u'абв') "u'\\xc1\\xc2\\xd7'"

标签: python ubuntu python-unicode


【解决方案1】:

终端对您的输入进行了不正确的解读。这不是 Python 问题。

为了证明这一点,使用 unicode 表示:

myunicode = u'\u0430\u0431\u0432'
print myunicode
print myunicode.encode('utf-8')

如果这没有两次打印原始字符串абв,那么你需要正确配置你的终端模拟器程序。

【讨论】:

  • 太好了,我已在 putty 配置中将接收到的数据字符集更改为 UTF-8。现在它可以工作了。
猜你喜欢
  • 2017-10-13
  • 2012-01-23
  • 2016-10-05
  • 2012-08-08
  • 2016-11-14
  • 2012-08-12
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
相关资源
最近更新 更多