输入 Python
Input in Python
我刚开始使用 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 -*-
替换为# -*- coding: utf-8 -*-
来指定代码文件的编码,这取决于您的系统默认文件编码。
我假设您正在使用 Python 2.x?
如果是这样,请将以下内容放在文件的顶部:
# -*- coding: utf-8 -*-
并确保您的字符串是 unicode 字符串:
s = raw_input().decode("utf-8").
print(s)
s = u"hiển thị 15 dòng"
print(s)
问题是您在源文件中使用了 # -*- 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 -*-
我刚开始使用 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 -*-
替换为# -*- coding: utf-8 -*-
来指定代码文件的编码,这取决于您的系统默认文件编码。
我假设您正在使用 Python 2.x?
如果是这样,请将以下内容放在文件的顶部:
# -*- coding: utf-8 -*-
并确保您的字符串是 unicode 字符串:
s = raw_input().decode("utf-8").
print(s)
s = u"hiển thị 15 dòng"
print(s)
问题是您在源文件中使用了 # -*- 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 -*-