编码和解码的概念理解

本文是记录下个人对编程时遇到的编码(encode)和解码(decode)的理解。

类比

首先让我们看一下这个情形:有2个特工,分别叫A和B,他们之间通过电报传输情报,既然是情报,那么肯定是要加密的,这样敌人拿到这个情报也无法解读,只有知道如何解密的人才能读懂情报内容。
在这里插入图片描述
假设A和B约好,解密规则是对收到的信息从右往左读,然后A准备发送“这里有敌人”这条情报。根据规则,A发送到电报上的信息应该是“人敌有里这”,当B收到情报后,按照从右往左读的规则,解读出真正的情报内容是“这里有敌人”

编码(encode)和解码(decode)

我们在用python编程时,经常会遇到编码和解码的问题,其实这些概念和传递情报的例子是一样的。

所谓编码就是把要传递的信息按照一定的规则进行组织,所谓解码就是把收到的信息按照一定的规则进行解析,并且这个规则必须是编码者和解码者事先都知道或约定好的。

下面举个简单栗子,

info = 'hello 你好'

result = info.encode('UTF-8') # 以UTF-8规则进行编码
print(result)

actual = result.decode('UTF-8')# 以UTF-8规则进行解码,得到正确结果
print(actual)

actual = result.decode('gbk') # 以gbk规则进行解码,得到错误结果
print(actual)

输出结果如下,
在这里插入图片描述
可以看出,只有双方按照相同的规则来进行编解码,才能正确通信。

如果有写的不对的地方,希望能留言指正,谢谢阅读。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值