Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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 如何恢复加载并保存在UTF8中的GB2312编码文件?_Python_Utf 8_Character Encoding - Fatal编程技术网

Python 如何恢复加载并保存在UTF8中的GB2312编码文件?

Python 如何恢复加载并保存在UTF8中的GB2312编码文件?,python,utf-8,character-encoding,Python,Utf 8,Character Encoding,我有一个文件,它是GB2312编码,但加载和保存在UTF8错误。它看起来如下所示: ���ͣ� 然而,正确的词应该是 微信 我想知道是否有什么方法可以恢复此文件?我已经尝试了下面的python代码,在我看来这是一个相反的过程,但是它不起作用 import codecs with codecs.open("new.txt", 'r', encoding='utf8') as f: text = f.read() text = text.decode() print

我有一个文件,它是GB2312编码,但加载和保存在UTF8错误。它看起来如下所示:

���ͣ�
然而,正确的词应该是

微信
我想知道是否有什么方法可以恢复此文件?我已经尝试了下面的python代码,在我看来这是一个相反的过程,但是它不起作用

import codecs
with codecs.open("new.txt", 'r', encoding='utf8') as f:
    text = f.read()
text = text.decode()
print text
text = text.encode('gb2312')
with codecs.open("trans_new", 'w', encoding='gb2312') as f:
    f.write(text)

所以我开始想,是否有一些信息丢失导致无法恢复此文件

编辑

我正在使用python 2

repr(f.read())
的实际字节为

'\xce\xa2\xef\xbf\xbd\xef\xbf\xbd'

您能否共享实际字节(
open('new.txt','rb').read()
)?另外,您使用的是Python 2还是Python 3?@snakecharmerb请参见我的更新
\xef\xbf\xbd
� 性格没有什么可以恢复的。
b'\xce\xa2\xef\xbf\xbd\xef\xbf\xbd'.decode('gb2312')
给出了
'微锟斤拷'..@JosefZ锟斤拷  在汉语中是Mojibake的等价物。