gpt4 book ai didi

python - IDLE 和 unicode 字符 (2.5.4)

转载 作者:行者123 更新时间:2023-11-28 16:54:50 25 4
gpt4 key购买 nike

为什么 IDLE 可以正确处理一个符号而不是另一个?

>>> e = '€'
>>> print unichr(ord(e))
# looks like a very thin rectangle on my system.
>>> p = '£'
>>> print unichr(ord(p))
£
>>> ord(e)
128
>>> ord(p)
163

我尝试添加各种 # 代码行,但这没有帮助。

编辑:浏览器应该是 UTF-8,否则这看起来会很奇怪

编辑 2:在我的系统上,欧元字符在第 1 行正确显示,但不在打印行中。磅字符在两个地方都正确显示。

最佳答案

答案取决于 IDLE REPL 使用的编码。您应该更明确地了解什么是 unicode 文本,什么是字节序列。思考这个例子:

# -*- coding: utf-8 -*-
c = u'€'
print type(c)
for b in c.encode('utf-8'):
print ord(b)

c = '€'
print type(c)
for b in c:
print ord(b)

编辑:

至于 IDLE,它有点像 borken ,并且需要打补丁才能正常工作。

IDLE 1.2.2      
>>> c = u'€'
>>> ord(c)
128
>>> c.encode('utf-8')
'\xc2\x80'
>>> c
u'\x80'
>>> print c
[the box thingy]


>>> c = u'\u20ac'
>>> ord(c)
8364
>>> c.encode('utf-8')
'\xe2\x82\xac'
>>> c
u'\u20ac'
>>> print c

在第一个 session 中,在解释 € 时,它已经被错误编码,并且无法恢复。

关于python - IDLE 和 unicode 字符 (2.5.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1637479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com