|
|
发表于 2020-6-14 21:01:59
|
显示全部楼层
本帖最后由 BIO-张磊 于 2020-6-14 21:22 编辑
我在举个例子吧
str1 = "小甲鱼"
str1_GBK = str1.encode("GBK")###结果是bytes对象 b'\xd0\xa1\xbc\xd7\xd3\xe3'
str1_UTF8 = str.encode("UTF-8")###结果是bytes对象 b'\xe5\xb0\x8f\xe7\x94\xb2\xe9\xb1\xbc'
str1_GBK.decode()#python默认是UTF-8解码,所以会报错'utf-8' codec can't decode byte 0xbc.....
str1_UTF8.decode()#会返回正确结果
str1_GBK.decode(encoding = "GBK")#会返回正确结果
str1_UTF8.decode(encoding = "GBK")#会报错
所以你读进去的时候,你指定encoding,你解码的时候,他会根据你指定的encoding对这个bytes对象进行解码
所以这中间有个bytes对象作为媒介
前后不一致,当然会报错,因为可能A编码转化成的bytes对象,以B编码去解码就识别不了这个bytes对象。 |
|