python:打印短utf编码字符串时出现问题

python:打印短utf编码字符串时出现问题,python,unicode,python-2.x,Python,Unicode,Python 2.x,(下面使用的是Python 2.6.1) 我有两个字符串: >>> 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.en

(下面使用的是Python 2.6.1)

我有两个字符串:

>>> 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尝试过了。

嗯,你说得对!仍然很奇怪,但至少现在我可以继续工作了非常感谢。(对于后来遇到这个问题的人,我使用的是IDLE 2.6.1)