Bjo*_*orn 10 python unicode macos terminal
如果我尝试粘贴一个unicode字符,如中间点:
·
在我的python解释器中它什么都不做.我在Mac OS X上使用Terminal.app,当我只是在bash中我没有遇到麻烦:
:~$ ·
Run Code Online (Sandbox Code Playgroud)
但在翻译中:
:~$ 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.
>>>
Run Code Online (Sandbox Code Playgroud)
^^我什么都没得到,它只是忽略了我只是粘贴了这个角色.如果我使用中间点'\ xc2\xb7'的escape\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)
Run Code Online (Sandbox Code Playgroud)
我在sitecustomize.py中设置了'utf-8'作为我的默认编码,所以:
>>> sys.getdefaultencoding()
'utf-8'
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?这不是终点站.这不是Python,我做错了什么?!
unicode('\xc2\xb7')意味着使用默认的编解码器解码有问题的字节字符串,这是ascii - 当然失败了(尝试设置不同的默认编码从来没有运作好,特别是不适用于"粘贴的文字" - 这无论如何都需要不同的设置).您可以使用u'\ xc2\xb7',并查看:
>>> print(u'\xc2\xb7')
·
Run Code Online (Sandbox Code Playgroud)
因为那些当然是两个 unicode字符.而:
>>> print(u'\uc2b7')
?
Run Code Online (Sandbox Code Playgroud)
给你一个unicode角色(一些东方劝说 - 抱歉,我对这些事情一无所知).顺便说一句,这些都不是你想要的"中间点".也许你的意思是
>>> print('\xc2\xb7'.decode('utf8'))
·
Run Code Online (Sandbox Code Playgroud)
这是中间点.BTW,对我来说(python 2.6.4来自Mac Terminal.app上的python.org):
>>> print('?')
?
Run Code Online (Sandbox Code Playgroud)
哪种让我感到惊讶(我预计会有错误......! - ).
| 归档时间: |
|
| 查看次数: |
8986 次 |
| 最近记录: |