繁体   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