Skip to main content
 首页 » 编程设计

python之在 Python 中输入

2025年05月04日16findumars

我刚开始使用 Python,我遇到了非英语(尤其是越南语)输入的问题。当我运行这段代码时:

# -*- coding: unicode-escape -*- 
s = raw_input() 
print(s) 
 
s = "hiển thị 15 dòng" 
print(s) 

我从终端输入了完全相同的字符串,打印如下:

hiển thị 15 dòng 
hi\xe1\xbb\x83n th\xe1\xbb\x8b 15 d\xc3\xb2ng 

当我在其他函数中使用这两种类型的字符串时,它也会有所不同,因为我发现第一个不起作用,但第二个起作用。 有人会给我一些提示吗? 谢谢你!

请您参考如下方法:

问题是您在源文件中使用了# -*- coding: unicode-escape -*-。它导致 python 使用 \xnn 十六进制转义转义 UTF-8 表示中大于 128 的所有字节,将您的字符串转换为

'hi\xe1\xbb\x83n th\xe1\xbb\x8b 15 d\xc3\xb2ng' 

因此 # -*- coding: unicode-escape -*-:

s = "hiển thị 15 dòng" 

会变成

s = 'hi\\xe1\\xbb\\x83n th\\xe1\\xbb\\x8b 15 d\\xc3\\xb2ng' 

原因当然是使用unicode-escape作为coding的编解码器;使用 utf-8 代替:

# -*- coding: utf-8 -*-