python:打印短utf编码字符串时遇到问题

标签 python unicode python-2.x

(以下使用的是Python 2.6.1)

我有 2 个字符串:

>>> a = u'\u05e8\u05db\u05e1'
>>> b = u'\u05e8\u05db\u05e1 \u05d4\u05d9\u05d0 \u05de\u05d0\u05d9\u05e8\u05d4 \u05d1\u05e4\u05e0\u05e1'

我对它们进行编码:

>>> ua = a.encode('utf-8')
>>> ub = b.encode('utf-8')
>>> ua
'\xd7\xa8\xd7\x9b\xd7\xa1'
>>> ub
'\xd7\xa8\xd7\x9b\xd7\xa1 \xd7\x94\xd7\x99\xd7\x90 \xd7\x9e\xd7\x90\xd7\x99\xd7\xa8\xd7\x94 \xd7\x91\xd7\xa4\xd7\xa0\xd7\xa1'

并尝试打印:

>>> print ua
רכס
>>> print ub
רכס היא מאירה בפנס

为什么 ub 打印希伯来语字符而 ua 不打印? ua 只是 ub 的前几个字符,所以字符串长度似乎是问题所在,这很奇怪。

(郑重声明,这是在尝试使用 BeautifulSoup 解析网页时出现的——我不知道为什么有些段落可读性很强,而另一些则不行。)

最佳答案

必须与您的终端设置有关; ua 在我的终端(OS X 上的 Terminal.app)上打印三个希伯来字符,正好是 ub 最右边的三个字符。 (由于希伯来语是从右到左的文字,因此最右边的三个字符是前三个字符)。

郑重声明,我已经用 Python 2.6.1 试过了。

关于python:打印短utf编码字符串时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3101100/

相关文章:

python - 在 python pandas 数据框中将十六进制转换为十进制

python - MySQL准备语句导致SQL语法错误

使用 unicode 字符解析 Json

html - 韩国句子被随机分割

php - 默认的 mb_internal_encoding() 值来自哪里?

exception - 在 Python 2 和 Python3 上重新引发 Cython 中的异常

python - io.open 与 python 中的 open 之间的区别

python - 我想检查输入是否是 python 代码

python - networkx 中更大图的完全连接子图

python - Odoo:如何处理对话中附加的winmail.dat?