Python 2.6:写入文件时的Unicode问题

时间:2014-05-19 21:05:04

标签: python python-2.7 unicode python-2.6

使用极旧版本的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导致这个问题究竟有什么不同?

2 个答案:

答案 0 :(得分:0)

当您向文件写入内容并从同一文件中读取内容时,将读取文件结尾后的内容。在某些操作系统(窗口)上,这会导致垃圾。你必须回到0再次阅读文件。

答案 1 :(得分:0)

我不确定这是否可以在python 2.6中运行,但我最近不得不处理类似的问题,但我使用了类似的东西并且它做了诀窍

  

res = text.encode('utf-8','replace')

这应该可以解决问题,因为错误会被替换为utf-8。我为我工作。