关于txt乱码问题修复

从网上下载的部分txt文件,文档编辑器打不开,于是尝试使用python 解决:

方案一: 猜想txt文档的格式,以指定的编码格式打开:

import os
fileHandle = open(file,'r',encoding='gb2312')
str =  fileHandle.read()

尝试更换多种编码方式:gb2312,utf-8,unicode等,最后还是失败了。
方案二 不能瞎猜,得猜到什么时候,于是决定使用探测器探测一下。

import os
import chardet
fileHandle = open(file,mode='rb')
data =  fileHandle.read()
print(chardet.detect(data))

成功探测出编码方式,决定使用探测出来的编码方式,进行解码。
遗憾的是仍然解码错误。

其实文本编辑器具备自动识别文本编码的功能,
之所以无法解码是因为部分文档可能是乱码,最终导致解码失败。

于是选择忽略乱码的部分,进行解码

true_text = data.decode('GB2312', "ignore")

这次解码成功,得到正确字符串,将其写入文件中保存起来。

fixtxt = open("/Users/litengfang/Desktop/fix.txt",'w')
fixtxt.write(true_text)

你可能感兴趣的:(关于txt乱码问题修复)