据我所知,Python 2.7字节字符串只占用ASCII字符,我想知道为什么以下有效?看起来ü以其他格式编码,你能解释一下吗?
>>> s = "Flügel"
>>> s
'Fl\x81gel'
答案 0 :(得分:2)
据我所知,Python 2.7字节字符串只采用ASCII字符,
你误解了。 Python字节字符串采用任何有效字节。字节基本上是0到255范围内的整数值(ASCII覆盖0到127)。
当您在终端或控制台中打开交互式解释器提示时,该终端或控制台的配置将确定您可以键入哪些字节并将其发送到Python。您似乎正在使用发送拉丁文字的文本(0x81
发送ü
sys.stdin.encoding
)。 Python将其存储在bytestring。
您可以通过查看>>> import sys
>>> sys.stdin.encoding
'UTF-8'
>>> s = 'Flügel'
>>> s
'Fl\xc3\xbcgel'
来查看使用的编解码器。
我的配置为处理UTF-8,它使用两个字节来编码相同的字符(number of variants):
img.create(width, height, sf::Color::Black);