Python | 多种编码文件(中文)乱码问题解决

2025-10-11 02:01:50

1、可以知道的是,文本文件的默认编码并不是utf8。

我们打开一个文本文件,并点击另存为

Python | 多种编码文件(中文)乱码问题解决

2、我们在新窗口的编码一栏看到默认编码是ANSI。先不管这个编码是什么编码,但是通过下拉列表我们知道,这种编码不是utf8。

Python | 多种编码文件(中文)乱码问题解决

Python | 多种编码文件(中文)乱码问题解决

1、对于Python里面的中文显示,我们常常使用utf8和gbk的编码。对于这两种编码笔者就不介绍了,总之都是专门可以处理中文的编码方式啦。

Python | 多种编码文件(中文)乱码问题解决

2、我们首先对文本文件测试了gbk解码。我们发现,此编码下文本文件内容可以正常显示,但是使用utf8解码,程序出错,抛出decodeError异常

Python | 多种编码文件(中文)乱码问题解决

3、同样的,我们对Python脚本文件测试了utf8解码。我们发现,此编码下文本文件内容可以正常显示,但是使用gbk解码,中文部分出现乱码

Python | 多种编码文件(中文)乱码问题解决

4、测试说明,对于文本文件需要使用gbk解码,而对于脚本文件需要utf8解码,也就是说,文本文件是gbk编码的,而脚本则是utf8

1、chardet模块可以检测字符编码,应该说是类似问题的终极解决。先安装一下

Python | 多种编码文件(中文)乱码问题解决

Python | 多种编码文件(中文)乱码问题解决

2、通过下面代码测试一下两种文件的编码。我们看到,通过chardet模块返回的是一个字典。字典的前一个元素是编码检查的概率,后一个是编码类型

Python | 多种编码文件(中文)乱码问题解决

Python | 多种编码文件(中文)乱码问题解决

3、我们看到,文本文件的编码方式是GB2312,而我们上面使用gbk的解码也是可以的,那是因为gb2312是gbk的一个子集(GBK/1、GBK/2是GB2312区域)

Python | 多种编码文件(中文)乱码问题解决

4、现在我们修改一下最终的代码,把这个编码问题解决掉~

Python | 多种编码文件(中文)乱码问题解决

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢