前言:如果在文件没有损坏的情况下,大概率时编码格式的问题。
问题:左侧为文本乱码,右侧为实际内容
一.解决方案
1.直接将文本另保存,换其他格式。然后打开试试看:
2.在本文内转换格式
3.另保存中的格式不够多。可能没有其合适的编码。可以使用代码程序来进行另保存
以下时python代码:这是使用了gbk编码格式打开文件
txet = [] with open('./story.txt', 'r', encoding='gbk') as f: text = f.readlines() print(text)
可以尝试比较常见的编码:
-
ASCII(American Standard Code for Information Interchange):最早的字符编码标准,用于表示英文字母、数字和一些特殊字符,采用7位二进制数表示一个字符。
-
UTF-8(Unicode Transformation Format-8):一种可变长度字符编码,用于Unicode字符集,能表示世界上大部分国家的文字,采用1至4个字节表示一个字符。
-
UTF-16(Unicode Transformation Format-16):一种固定长度字符编码,同样用于Unicode字符集,采用2或4个字节表示一个字符。
-
UTF-32(Unicode Transformation Format-32):一种固定长度字符编码,同样用于Unicode字符集,每个字符固定占用4个字节。
-
ISO-8859-1(Latin-1):一种单字节编码,用于表示西欧语言中的字符。
-
GBK(Guo Biao Kang Xi):用于简体中文的字符集编码,包含了中文、英文和一些符号。
-
Big5:用于繁体中文的字符集编码。
-
Shift-JIS:一种用于日文的字符编码。
发现文本可以正常看见:
但是每句话前面有转义字符,可以通过下面代码处理即可:
txet = [] with open('./story.txt', 'r', encoding='gbk') as f: text = [i.replace('\u3000\u3000', '') for i in f.readlines()] print(text)
看看效果:(没有转义字符了)
最后保存成你想要的格式即可(一般是utf-8),按照以下代码:
with open('./story1.txt', 'w', encoding='utf-8') as fp: for i in text: fp.write(i)
我们看看目录中保存文件的效果:
当然你也可以使用编程语言,不局限于python!