python3编码问题总结

隐身守侯 提交于 2019-11-30 12:10:51

python 读取文本文件,报出gbk问题

问题如下:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 225: illegal multibyte sequence

因为如果你没有指定打开文件编码方式的话,windows默认是gbk编码打开(Linux默认为utf-8编码),而你的文件是utf-8编码,

所以有的字符gbk无法识别也就是:can't decode 某某位置的字节码

解决办法就是:

指定打开文件的编码方式,

with open("data.txt",'r',encoding='utf-8') as data:

题外话:因为文件在磁盘是以二进制的形式存储的,人要打开,要能看懂,必须变成人能看懂的形式,这就是编码encode,python编码以前使用的是ASCII编码,现在都是使用的Unicode编码集(python3中str就为Unicode码),他是一个中间码,注意是中间码而不是特指哪个编码方式,utf-8 或者gbk都是Unicode编码集的变形形式。想要将一个编码形式的文件变成另一个编码形式,就要使用中间码Unicode作为编码形式转换的桥梁,这就是解码decode,解码为中间码Unicode。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!