[python]input函数中文输出删除导致编码问题
问题描述使用input()接收用户的命令行输入时,当用户输入中文,并用退格键删除中文时,删一个中文字需要按两下退格键,并且还会出现utf8编码问题。
解决
导入readline包即可,不需要引用。Linux/mac的python标准包就有
import readlinereadline包的作用
readline是一个用于增强交互式命令行体验的库,提供以下功能:
1. 行编辑功能
[*]支持使用方向键移动光标
[*]支持退格键删除字符
[*]支持Delete键删除光标后的字符
[*]支持Home/End键快速移动到行首/行尾
2. 历史记录管理
[*]自动保存输入历史
[*]使用上下方向键浏览历史命令
[*]支持搜索历史记录(Ctrl+R)
3. UTF-8和多字节字符支持
[*]正确处理中文等多字节字符
[*]避免在删除中文字符时出现UTF-8编码错误
[*]确保光标位置正确计算
4. Tab补全
[*]支持自定义tab补全功能
[*]可以实现文件名、命令名等的自动补全
5. 键盘快捷键
[*]Ctrl+A:移动到行首
[*]Ctrl+E:移动到行尾
[*]Ctrl+K:删除光标到行尾的内容
[*]Ctrl+U:删除光标到行首的内容
[*]Ctrl+W:删除前一个单词
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]