beo*_*ver 4 python unicode input
python 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
>>>
Run Code Online (Sandbox Code Playgroud)
情况并不可怕,我正在解决它,但发现奇怪的是,删除时,字节搞砸了.还有其他人经历过这个吗?
终端历史表明它以为我进入了 h?ope
有任何想法吗?
在使用它的脚本中,我执行导入readline以提供命令行历史记录.
看起来退格正在删除最后一个字节而不是最后一个字符.最终发生的是你输入:
68 c3 a5
h | å
68 c3 6f 70 65
h | |o |p |e
Run Code Online (Sandbox Code Playgroud)
在UTF-8中,第一位set(c3)的字节意味着下一个字节也必须设置其第一个位(参见Wikipedia的描述).
确保您的终端模拟器和readline了解您使用的是UTF-8.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |