簡體   English   中英

為什么在Mac OS X Terminal.app上的Python解釋器中不能顯示Unicode字符?

[英]Why can't I display a unicode character in the Python Interpreter on Mac OS X Terminal.app?

如果我嘗試粘貼unicode字符(例如中間點):

·

在我的python解釋器中,它什么也沒做。 我在Mac OS X上使用Terminal.app,當我只是以bash身份參加時,我沒有遇到任何麻煩:

:~$ ·

但是在解釋器中:

:~$ python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

^^我什么也沒得到,只是忽略了我剛剛粘貼的角色。 如果我使用中間點'\\ xc2 \\ xb7'的轉義\\ xNN \\ xNN表示,並嘗試轉換為unicode,則嘗試顯示該點會導致解釋器拋出錯誤:

>>> unicode('\xc2\xb7')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

我在sitecustomize.py中將“ utf-8”設置為默認編碼,因此:

>>> sys.getdefaultencoding()
'utf-8'

是什么賦予了? 這不是航站樓。 不是Python,我在做什么錯?!

這個問題與這個問題無關,因為這個人可以將unicode粘貼到他的終端中。

unicode('\\xc2\\xb7')意味着使用默認編解碼器ascii解碼有問題的字節字符串-當然會失敗(嘗試設置其他默認編碼從未奏效,特別是沒有不適用於“粘貼文字”,無論如何都需要進行其他設置)。 您可以改用u'\\ xc2 \\ xb7',然后查看:

>>> print(u'\xc2\xb7')
·

因為這些當然是兩個 unicode字符。 而:

>>> print(u'\uc2b7')
슷

給您一個unicode字符(具有某種東方的說服力-抱歉,我對這些事情一無所知)。 順便說一句,這些都不是您想要的“中間點”。 也許你是說

>>> print('\xc2\xb7'.decode('utf8'))
·

中間的點。 順便說一句,對我來說(在Mac Terminal.app上來自python.org的python 2.6.4):

>>> print('슷')
슷

哪種讓我感到驚訝(我預料會出現錯誤...!-)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM