Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.6:写入文件时的Unicode问题_Python_Python 2.7_Unicode_Python 2.6 - Fatal编程技术网

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

Python 2.6:写入文件时的Unicode问题,python,python-2.7,unicode,python-2.6,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是一种类型。我将其转换为UTF-8编码的类型,并将其写入输出文件。但是,当我读入文件时,数据完全损坏,这表明发生了某种编码错误 对于Python的更高版本(Python2.7)

使用非常旧的Python版本(2.6),我在将数据写入文件时遇到了Unicode编码问题:

t = tempfile.NamedTemporaryFile(mode = "w+b")
res = text.encode("UTF-8")
t.write(res)
print t.read()
在这个简单的示例中,
text
是一种
类型。我将其转换为UTF-8编码的
类型,并将其写入输出文件。但是,当我读入文件时,数据完全损坏,这表明发生了某种编码错误


对于Python的更高版本(Python2.7),这种方法非常有效。Python 2.6到底有什么不同之处导致了这个问题?

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

我不确定这是否适用于python 2.6,但我最近不得不处理一个类似的问题,但我使用了类似的方法,它成功了

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

这应该可以做到,因为错误将被utf-8替换。我为我工作。

repr(t.read())
之前添加
t.seek(0)
t.flush()
不会有伤害,尽管
t.seek
应该足够了)。添加
t.close()
。“导致此问题的Python 2.6到底有什么不同?”--尝试将
文本
最小化(一个或两个Unicode代码点),例如,使用二进制搜索(text=text[:len(text)//2]等)或使用
diff
cmp
比较Python 2.7和Python 2.6的结果。