使用 Python 编程语言时,我在输出 å、ä 和 ö 等字符时遇到问题。以下代码给出了一个问号 (?) 作为输出,而不是 å:
#coding: iso-8859-1
input = "å"
print input
以下代码可让您输入随机文本。 for 循环遍历输入的每个字符,将它们添加到字符串变量 a,然后输出结果字符串。这段代码工作正常;您可以输入 å、ä 和 ö,输出仍然正确。例如,“år”按预期输出“år”。
#coding: iso-8859-1
input = raw_input("Test: ")
a = ""
for i in range(0, len(input)):
a = a + input[i]
print a
有趣的是如果我改变input = raw_input("Test: ")
to input = "år"
,它将为“å”输出一个问号(?)。
#coding: iso-8859-1
input = "år"
a = ""
for i in range(0, len(input)):
a = a + input[i]
print a
就其价值而言,我正在使用 TextWrangler,并且我的文档的字符编码设置为 ISO Latin 1。这是什么原因造成的?我该如何解决这个问题?
您使用的是 Python 2,我假设在像 Linux 这样以 UTF-8 编码 I/O 的平台上运行。
Python 2 的""
文字代表字节串。所以当你指定"år"
在 ISO 8859-1 编码的源文件中,变量input
有价值b'\xe5r'
。当你print
这样,原始字节将输出到控制台,但显示为问号,因为它们不是有效的 UTF-8。
为了演示,请尝试使用print repr(a)
代替print a
.
当你使用raw_input()
,用户的输入已经是 UTF-8 编码的,因此可以正确输出。
要解决此问题,可以执行以下任一操作:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)