查看: 57|回覆: 0

[python]input函数中文输出删除导致编码问题

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-4-7
發表於 2025-9-2 17:54:00 | 顯示全部樓層 |閲讀模式

问题描述

使用input()接收用户的命令行输入时,当用户输入中文,并用退格键删除中文时,删一个中文字需要按两下退格键,并且还会出现utf8编码问题。

解决

导入readline包即可,不需要引用。Linux/mac的python标准包就有

import readline

readline包的作用

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:删除前一个单词
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部