91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3字符串encode與decode有什么用

發布時間:2021-08-26 10:46:15 來源:億速云 閱讀:206 作者:小新 欄目:開發技術

小編給大家分享一下Python3字符串encode與decode有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

python3中對文本和二進制做了比較清晰的區分。python3默認編碼為unicode,由str類型進行表示。二進制數據使用byte類型表示,所以不會將str和byte混在一起。在實際應用中我們經常需要將兩者進行互轉

有幾點需要注意:

1:字符串通過編碼轉換為字節碼,字節碼通過解碼轉換為字符串

str--->(encode)--->bytes,bytes--->(decode)--->str

import sys
print('目前系統的編碼為:',sys.getdefaultencoding())
name='小明'
print(type(name))#首先我們來打印下轉碼前的name類型,因為它是str,所以可以通過encode來進行編碼
name1=name.encode('utf-8')
print(name1)

輸出為:

目前系統的編碼為: utf-8
<class 'str'>
b'\xe5\xb0\x8f\xe6\x98\x8e'

這里大家或許會有一個疑問,編碼utf-8為什么不是decode轉成unicode

因為開頭跟大家講過,python3默認就是unicode,utf-8可以看成是unicode的一個擴展集,所以其實name本身是一個unicode編碼的,所以可以通過encode編碼成utf-8,這里可以試下,如果認為name應該是utf-8,那我們來試下encode會不會報錯

name1=name.decode('utf-8')
print(name1)
這里會報如下錯誤:
AttributeError: 'str' object has no attribute 'decode'

所以,對于python3默認的就是unicode編碼。

既然已經encode成utf-8了,那我們來看下decode會出現什么樣的結果

name2=name1.decode('utf-8')
print(type(name2))
print(name2)
這里要跟大家說下,decode()括號中為什么寫utf-8,而不寫gbk,可以這樣理解,因為要解碼,你總得告訴它我是什么編碼的吧,比如我原先是utf-8格式的編碼,現在要解碼,但是如果冒充utf-8,說自己是gbk,那就會出現亂碼,見下:
<class 'str'>
<class 'str'>
灝忔槑

另外如果大家encode()和decode()括號中不寫編碼格式,系統會默認為utf-8,大家可以試下。

2:utf-8編碼格式和gbk編碼格式互轉

既然知道utf-8編碼與解碼的規律,那我們來試試它與gbk之間的火花。

name1=name.encode('utf-8')
name2=name1.decode('utf-8')
name3=name2.encode('gbk')
name4=name3.decode('gbk')
print(type(name3))
print(name3)
下面是name3的結果
<class 'bytes'>
b'\xd0\xa1\xc3\xf7'
下面是name4的結果
<class 'str'>
小明

從上面可以卡出name2本來是解碼成utf-8的,后來有隊name2進行了gbk編碼,接著又再次對name3進行gbk解碼

所以不難看出,其實utf-8和gbk之間都是通過unicode來做一個中間轉換的操作

在例子中

name2=name1.decode('utf-8')
name3=name2.encode('gbk')

這兩步的操作就是通過unicode來轉的

以上是“Python3字符串encode與decode有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖南省| 高陵县| 疏附县| 桐柏县| 德庆县| 亳州市| 阜康市| 望谟县| 句容市| 搜索| 广饶县| 黄浦区| 平南县| 台北县| 建宁县| 清远市| 仁布县| 乃东县| 高清| 大石桥市| 嘉定区| 凌海市| 新闻| 绿春县| 普定县| 双桥区| 德钦县| 西城区| 陇西县| 台北市| 陵水| 巴楚县| 南安市| 潼关县| 禹州市| 东宁县| 三原县| 海安县| 个旧市| 大庆市| 那坡县|