Python中encode和encoding的區別是什么?
大家好,我是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的區別做了簡單講解。