鱼C论坛

 找回密码
 立即注册
查看: 1906|回复: 9

[已解决]有关编码与解码的问题

[复制链接]
发表于 2020-6-14 20:23:43 | 显示全部楼层
本帖最后由 BIO-张磊 于 2020-6-14 21:18 编辑

encoding是指 你的文件是用什么编码的,是既定事实,你open它。encoding就像一把钥匙,你的文件用GBK编码需要GBK钥匙,那就输入GBK,用UTF-8编码就需要UTF-8要是,那就输入UTF-8
但是计算机存储的时候是根据你的编码方式转换成的二进制,你能看到它,只是因为解码成功了
具体看下面的例子
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 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对象。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 04:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表