蟒蛇3.x
>>> a = input()
hope
>>> a
'hope'
>>> b = input()
håpe
>>> b
'håpe'
>>> c = input()
start typing hå... delete using backspace... and change to hope
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 1: invalid continuation byte
>>>
这种情况并不可怕,我正在解决它,但发现很奇怪的是,删除时,字节会弄乱。还有其他人经历过吗?
终端历史记录显示它认为我输入了h?ope
有任何想法吗?
在使用它的脚本中,我导入readline
提供命令行历史记录。
看起来退格键正在删除最后一个byte而不是最后一个特点。最终发生的事情是你输入:
68 c3 a5
h | å
68 c3 6f 70 65
h | |o |p |e
在 UTF-8 中,第一个位设置的字节 (c3
)意味着下一个字节也必须设置其第一位(参见维基百科的描述).
确保您的终端模拟器和 readline 知道您正在使用 UTF-8。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)