鱼C论坛

 找回密码
 立即注册
查看: 2896|回复: 2

[学习笔记] decode和encode的区别

[复制链接]
发表于 2020-3-17 23:26:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
字符串在python内部的表示是unicode编码,也可以说现在的内存是unicode编码格式,硬盘是utf-8。平常的数据操作都是先把数据读取到内存中,所以内存中都是unicode编码格式。

所以我们平常在做编码转换时候,通常用unicode作为中间编码。先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码格式。

decode的作用是将二进制数据解码成unicode编码,如str1.decode('utf-8'),表示将utf-8的编码字符串解码成unicode编码。

简单的来说:decode就是把二进制数据(bytes)转化成人看的懂得英文或者汉字(decode用的比较多)

encode的作用是将unicode编码的字符串编码成二进制数据,如str2.encode('utf-8'),表示将unicode编码的字符串编码成utf-8。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-18 00:44:11 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-18 00:48 编辑

       在 Windows 等以 GBK 编码为默认汉字编码的系统环境内,程序代码、文本文件中的汉字一律采用的是 GBK 编码,为了能够被 Python 所接纳,需要使用字符串的 decode() 方法,对字符串按 'GBK' 进行解码,以便得到字符串的内码,也就是 unicode 编码形式,例如,执行 s = '小甲鱼' . decode('GBK') 语句,那么,可以得到内码(unicode)形式的字符串 '小甲鱼',这时,如果我们希望按 'GBK' 和 'UTF-8' 的编码格式输出这个字符串,那么,可以通过字符串的 encode() 方法,分别通过 s . encode('GBK') 、s . encode('UTF-8') 两个语句来实现。  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-18 00:50:00 | 显示全部楼层
jackz007 发表于 2020-3-18 00:44
在 Windows 等以 GBK 编码为默认汉字编码的系统环境内,程序代码、文本文件中的汉字一律采用的是 GB ...

感谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 23:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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