【发布时间】:2013-11-04 16:00:44
【问题描述】:
我在读取文件、处理字符串和保存到 UTF-8 文件时遇到问题。
代码如下:
try:
filehandle = open(filename,"r")
except:
print("Could not open file " + filename)
quit()
text = filehandle.read()
filehandle.close()
然后我对变量文本进行一些处理。
然后
try:
writer = open(output,"w")
except:
print("Could not open file " + output)
quit()
#data = text.decode("iso 8859-15")
#writer.write(data.encode("UTF-8"))
writer.write(text)
writer.close()
这完美地输出了文件,但根据我的编辑器,它在 iso 8859-15 中这样做。由于同一个编辑器将输入文件(在变量文件名中)识别为 UTF-8,我不知道为什么会发生这种情况。据我的研究表明,注释行应该可以解决问题。但是,当我使用这些行时,生成的文件主要在特殊字符中出现乱码,带有波浪号的单词作为文本是西班牙语。我真的很感激任何帮助,因为我很难过......
【问题讨论】:
-
这是哪个编辑器?哪个python版本?从这里开始,这段代码似乎是完全有效的,应该可以按预期工作……
-
凯特是编辑。 python --version 的输出是 Python 2.7.5+
-
我已经用 2.6.8、2.7.5+ 和 3.3.2+ 测试了您的代码,一切正常。你能提供一些示例输入吗?
-
由于文本是以原始字节处理的,因此看不见的处理代码可能会弄乱 UTF8 编码。
-
好的。我已经解决了。这主要是我的错,所以对不起大家。这就是发生的事情。如果我在打开文件时更改 iso-8859-15 而不是 utf-8,@MarkTolonen 提供的代码就可以工作。然而,当我的编辑器从内存中更新了已经加载旧编码的文件时,它向我展示了胡言乱语。当我再次打开文件时,它显示给我很好。谢谢大家,抱歉打扰了!!!
标签: python python-2.7 utf-8