233倔强不秃 发表于 2020-3-17 23:26:39

decode和encode的区别

字符串在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。

jackz007 发表于 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') 两个语句来实现。

233倔强不秃 发表于 2020-3-18 00:50:00

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

感谢分享
页: [1]
查看完整版本: decode和encode的区别