轉(zhuǎn)載python3的decode()與encode()

Tags: Python Python3


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

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

字符串通過編碼成為字節(jié)碼,字節(jié)碼通過解碼成為字符串。

>>> 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)
我是文本

對于這些可以這么理解:

編碼就是將字符串轉(zhuǎn)換成字節(jié)碼,涉及到字符串的內(nèi)部表示。
解碼就是將字節(jié)碼轉(zhuǎn)換為字符串,將比特位顯示成字符。

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,407評論 0 7
  • 字符集和編碼簡介 在編程中常??梢砸姷礁鞣N字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,100評論 0 13
  • 在人機(jī)交互之字符編碼 一文中對字符編碼進(jìn)行了詳細(xì)的討論,并通過一些簡單的小程序驗證了我們對于字符編碼的認(rèn)識。但僅了...
    selfboot閱讀 2,497評論 0 2
  • 本地優(yōu)先級 EMD 本地優(yōu)先級優(yōu)先于EMD R1: R3:
    liaozb1996閱讀 287評論 0 0
  • 大家眼中的大家 只是大家。曾經(jīng)我以為朋友很重要。后來我發(fā)現(xiàn)其實一個人可以很輕易放棄另一個人。甚至在愛情面前微不足道...
    阿喵啊喵閱讀 188評論 0 0

友情鏈接更多精彩內(nèi)容