使用极旧版本的Python(2.6),在将数据写入文件时遇到Unicode编码问题:
t = tempfile.NamedTemporaryFile(mode = "w+b")
res = text.encode("UTF-8")
t.write(res)
print t.read()
在这个简单示例中,text
是<unicode>
类型。我将其转换为以UTF-8编码的<str>
类型,并将其写入输出文件。但是,当我读入文件时,数据完全被破坏,表明正在发生某种编码错误。
使用更高版本的Python(Python 2.7),这非常有效。 Python 2.6导致这个问题究竟有什么不同?
答案 0 :(得分:0)
当您向文件写入内容并从同一文件中读取内容时,将读取文件结尾后的内容。在某些操作系统(窗口)上,这会导致垃圾。你必须回到0再次阅读文件。
答案 1 :(得分:0)
我不确定这是否可以在python 2.6中运行,但我最近不得不处理类似的问题,但我使用了类似的东西并且它做了诀窍
res = text.encode('utf-8','replace')
这应该可以解决问题,因为错误会被替换为utf-8。我为我工作。