小编Dee*_*Kay的帖子

Python3与输入函数和CJK的意外视觉交互

抱歉我的英语不好,这不是我的第一语言.

我有一个内容正常的Python3文件

print(input(">"))
Run Code Online (Sandbox Code Playgroud)

当我在zsh或bash上运行它并写入hangul并使用我的退格键时,会发生意外行为.

如果我按"ㄴ"三次,然后退后三次,我留下这个:

>?  
Run Code Online (Sandbox Code Playgroud)

无论我按退格键多少次,都不会删除"ㅁ".同样,如果我最初写"동"

>?
Run Code Online (Sandbox Code Playgroud)

然后擦除它,有一个不可移除的空格和我之后键入的任何其他字符

> ???
Run Code Online (Sandbox Code Playgroud)

这似乎只是一个视觉问题,好像我输入"ㄴㄴㄴㄴㄴ"并点击退格直到没有显示变化,我会留下

>??
Run Code Online (Sandbox Code Playgroud)

接下来,我键入"동"并按Enter键.

>?? ?
Run Code Online (Sandbox Code Playgroud)

会导致

?
Run Code Online (Sandbox Code Playgroud)

只是打印.

最后一个奇怪的是它只发生在从python文件运行input()时.如果我通过交互式shell完成所有这些操作,则不会发生任何异常情况.

这是在我运行El Capitan的MBP上发生的,它似乎是所有CJK键盘的问题,我用中文和日文键盘进行了一些小测试,它显示出类似的行为.

任何人都可以告诉我为什么会这样,我怎么能阻止它?

python macos python-3.x osx-elcapitan

8
推荐指数
1
解决办法
94
查看次数

标签 统计

macos ×1

osx-elcapitan ×1

python ×1

python-3.x ×1