[英]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.