Python 编码与解码

废了那么多的章节讲字符编码,最终只需要记住一个结论就行了,关于前两个阶段的乱码问题,我们只需要加上文件头就解决了。

这个文件头指定的编码方式,就指定成你保存文件时用的编码就可以了。

a = '人'

这个变量值是直接存成了Unicode格式的对吧,前面我们提过,Unicode转成其他编码格式,这个过程我们叫编码,然后其他编码转成Unicode我们叫解码。

这个a下面有个方法叫encode。

这个方法叫编码,然后我传一个参数GBK给它。

a.encode('gbk')

这就是把Unicode转成了GBK,然后用一个变量值来接收这个返回值,再打印一下这个res。

res = a.encode('gbk')  
print(res, type(res))

我们可以在网上找到,人这个字的Unicode编码转成GBK格式,Unicode是4EBA,转成GBK就是484B。

但是它真正存到硬盘里面,是需要加上标识头的,结果应该是C8CB,我们打印出来的是一样的。

前面还有个小写的b,我们再来打印下类型看。

Unicode编码成其他格式,这个类型就叫bytes类型。

那Unicode转换成这种byets类型有什么用呢?说白了这个类型就是一串GBK格式的二进制嘛,只是我们打印出来看到的是16进制的,其实本质就是一串二进制数。

这串二进制数第一个用途就是可以写入到硬盘里去。

第二个用途就是可以研网络进行传输,比如你写的程序要和其他老的平台进行数据交互,老平台可能只识别GBK。

这时候我们python3的Unicode就不能直接传给对方了,要encode成GBK或者其他老平台支持的编码方式当然你也可以去尝试encode程UTF-8或者其他的都行。

好了,回归正题。

这个GBK我想转成Unicode就要对它进行解码了。

print(res.decode('gbk'))

解码也是按GBK来解,再打印一下。

打印出来,又变成了人这个字符了。

关于字符编码的相关知识,到这里简单的就全部介绍完毕了,接下来要学习的就是怎么用python来操作文件。

未经允许不得转载:445IT之家 » Python 编码与解码

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏