小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

bytes類(lèi)型--python

 融水公子 2018-09-11
Python的字符串類(lèi)型是str,在內(nèi)存中以Unicode表示,一個(gè)字符對(duì)應(yīng)若干個(gè)字節(jié)。如果要在網(wǎng)絡(luò)上傳輸,或者保存到磁盤(pán)上,就需要把str變?yōu)橐宰止?jié)為單位的bytes。
Python對(duì)bytes類(lèi)型的數(shù)據(jù)用帶b前綴的單引號(hào)或雙引號(hào)表示:
x = b'ABC'
要注意區(qū)分'ABC'和b'ABC',前者是str,后者雖然內(nèi)容顯示得和前者一樣,但bytes的每個(gè)字符都只占用一個(gè)字節(jié)。
以Unicode表示的str通過(guò)encode()方法可以編碼為指定的bytes,例如:
--->bytes

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87


--->str
如果我們從網(wǎng)絡(luò)或磁盤(pán)上讀取了字節(jié)流,那么讀到的數(shù)據(jù)就是bytes。要把bytes變?yōu)閟tr,就需要用decode()方法:

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
如果bytes中包含無(wú)法解碼的字節(jié),decode()方法會(huì)報(bào)錯(cuò)

bytes中只有一小部分無(wú)效的字節(jié),可以傳入errors='ignore'忽略錯(cuò)誤的字節(jié):
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'


當(dāng)str和bytes互相轉(zhuǎn)換時(shí),需要指定編碼。最常用的編碼是UTF-8。Python當(dāng)然也支持其他編碼方式,比如把Unicode編碼成GB2312:
>>> '中文'.encode('gb2312')
b'\xd6\xd0\xce\xc4'
但這種方式純屬自找麻煩,如果沒(méi)有特殊業(yè)務(wù)要求,請(qǐng)牢記僅使用UTF-8編碼。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多