大家好,我是Python进阶者。
前言
前几天有个叫【Alyine】的粉丝在问了一道关于Python编码的问题,如下图所示。
说来也巧合,就在前几天路飞学城的樵夫老师在xxx云音乐JS逆向的公开课上讲JS逆向破解的时候,也涉及到了这两个东东,当时讲的很快,很多小伙伴们估计也有些蒙圈。
可以看到下图的代码中,encode()直接上来就是个函数,而没有加utf-8这样的编码字样。
作为有些强迫症的小编,我是看不下去的,虽然我也看了他的课程,但是小编自己加上编码,也并没有报错。
一、思路
其实解决问题的关键点就是在一点,搞清楚编码之间的关系就可以了。其实关于编码的文章,在之前的文章,小编也写了好几篇了,感兴趣的小伙伴,为了补习一下基础,可以前往:一篇文章助你理解Python3中字符串编码问题、浅谈unicode编码和utf-8编码的关系,这里就不针对编码各大家族进行赘述了。
二、分析
encode()函数默认为utf-8类型,正是因为如此,所以在上面是否加utf-8编码,都能够正常的进行解析。它的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。encode()函数一般用于字符串转换,在网络爬虫的时候经常会用到。
encoding='编码类型',将字符串转换为指定编码的bytes,一般用于读写文件的时候用到。
三、总结
我是Python进阶者。本文基于粉丝提问,针对encode和encoding的区别做了简单讲解。