unicode中的Python输入存在退格问题
我的问题实际上是以下问题: 在unicode中的Python输入存在退格问题,python,linux,ssh,utf-8,Python,Linux,Ssh,Utf 8,我的问题实际上是以下问题: 在s=input(“输入名称”)中,如果用户输入Unicode格式的字符串,如علی,然后按backspace键,然后按Enter键(我的意思是使用backspace编辑输入),则会抛出UnicodeDecodeError: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdb in position 4: unexpected end of data 接受的答案没有显示任何特定的解决方案,而是将其与终端
s=input(“输入名称”)
中,如果用户输入Unicode格式的字符串,如علی,然后按backspace键,然后按Enter键(我的意思是使用backspace编辑输入),则会抛出UnicodeDecodeError
:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdb in position 4: unexpected end of data
接受的答案没有显示任何特定的解决方案,而是将其与终端和服务器编码相关联。我坐的是LC\u ALL=en\u US.UTF-8,但它没有解决问题,终端也是UTF-8。我的PC操作系统是Ubuntu 20.04,服务器是Ubuntu 16.04。程序在服务器上运行,我通过ssh连接到它
这是服务器上的locale
的输出:
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
我在服务器上的python版本是3.7.10。我用Python3.8.5在我的笔记本电脑上进行了测试,没有问题。然后我使用conda在服务器上安装了python 3.8.8,问题仍然存在。
同样,这个问题不在Python控制台中,但是当我调用“Python或python3.8 inp.py
”时,当input
命令位于名为inp.py
的文件中时,是否在“回车”之前按backspace键?对我来说,它不会在Python 3.5.3 Windows上重现10@Orb是的,我在进入前点击了backspace。你能用unicode写点东西吗?就像在一个外国剧本中,…我就是这么做的。在Windows上它可以工作。因此,这可能是一个操作系统兼容性问题。您使用的是什么Python版本(更新您的问题)。我知道输入函数从Python2变为Python3;这难道不是罪魁祸首吗?复制like和
并粘贴到Python提示符中(在一对引号之间);您会得到“如\u200d\u200dعلی和”
。请提及您正在使用的Python版本。