Python3的decode()與encode()


python3的decode()與encode()

Tags: Python Python3


對於從python2.7過來的人,對python3的感受就是python3對文本以及二進制數據做了比較清晰的區分。文本總是Unicode,由str類型進行表示,二進制數據使用bytes進行表示,不會將strbytes偷偷的混在一起,使得兩者的區別更加明顯。在python2中會明顯發現不能將strbytes拼接在一起,也不能在bytes中查找字符。
然而在實際應用中經常需要對兩者進行轉換操作以便后續的代碼能夠順利跑完。兩者之間的關如下所示:

str->bytes:encode編碼
bytes->str:decode解碼

字符串通過編碼成為字節碼,字節碼通過解碼成為字符串。

>>> text = '我是文本'
>>> text
'我是文本'
>>> print(text)
我是文本
>>> bytesText = text.encode()
>>> bytesText
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> print(bytesText)
b'\xe6\x88\x91\xe6\x98\xaf\xe6\x96\x87\xe6\x9c\xac'
>>> type(text)
<class 'str'>
>>> type(bytesText)
<class 'bytes'>
>>> textDecode = bytesText.decode()
>>> textDecode
'我是文本'
>>> print(textDecode)
我是文本

對於這些可以這么理解:

編碼就是將字符串轉換成字節碼,涉及到字符串的內部表示。
解碼就是將字節碼轉換為字符串,將比特位顯示成字符。

其中decode()encode()方法可以接受參數,其聲明分別為:

bytes.decode(encoding="utf-8", errors="strict")
str.encode(encoding="utf-8", errors="strict")

其中的encoding是指在解碼編碼過程中使用的編碼(此處指“編碼方案”是名詞),errors是指錯誤的處理方案。

詳細的可以參照官方文檔:
str.encode()
bytes.decode()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM