Python3新增的Byte類(lèi)型解讀
Python3新增的Byte類(lèi)型
在python2中字節(jié)類(lèi)型同字符類(lèi)型區(qū)分不大,但是在python3中最重要的特性是對(duì)文本和二進(jìn)制數(shù)據(jù)做了更加清晰的區(qū)分。
文本總是Unicode,由字符類(lèi)型表示,而二進(jìn)制數(shù)據(jù)則由byte類(lèi)型表示。
python3不會(huì)以任意隱式方式混用字節(jié)型和字符型,也因此在python3中不能拼接字符串和字節(jié)包(python2中可以,會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換),也不能在字節(jié)包中搜索字符串,也不能將字符串傳入?yún)?shù)為字節(jié)包的函數(shù)。
需要注意的是,在網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中,python2可以通過(guò)字符串(string)方式傳輸,但是python3只能通過(guò)二進(jìn)制(bytes)方式來(lái)傳輸,因此要對(duì)傳輸文本進(jìn)行轉(zhuǎn)換。
轉(zhuǎn)化方式:
- str → byte 用encode()方法
- byte → str 用decode()方法
例如下面的例子:
>>>'你好'.encode('utf-8') b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8') '你好' >>>'你好'.encode('utf-8').decode('utf-8') '你好'
- encode()和decode()方法中默認(rèn)編碼為utf-8,但是為了避免錯(cuò)誤,最好將編碼加上。
- encode()出來(lái)的結(jié)果的==“b”==代表二進(jìn)制(binary)
UTF-8格式的編碼方式
UTF-8(8-bit Unicode Transformation Format)是一種針對(duì)Unicode的可變長(zhǎng)度字符編碼,又稱(chēng)萬(wàn)國(guó)碼,由Ken Thompson于1992年創(chuàng)建。現(xiàn)在已經(jīng)標(biāo)準(zhǔn)化為RFC 3629。
UTF-8用1到6個(gè)字節(jié)編碼Unicode字符。用在網(wǎng)頁(yè)上可以統(tǒng)一頁(yè)面顯示中文簡(jiǎn)體繁體及其它語(yǔ)言(如英文,日文,韓文)。
gbk字庫(kù)
GBK全稱(chēng)《漢字內(nèi)碼擴(kuò)展規(guī)范》(GBK即“國(guó)標(biāo)”、“擴(kuò)展”漢語(yǔ)拼音的第一個(gè)字母,英文名稱(chēng):Chinese Internal Code Specification)
Python數(shù)據(jù)類(lèi)型轉(zhuǎn)成byte[]
用Python調(diào)用jar包時(shí),有個(gè)方法需要傳入byte[]類(lèi)型的參數(shù),需把Python的數(shù)據(jù)類(lèi)型轉(zhuǎn)成該類(lèi)型,
方法如下:
from jpype import JByte
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)python爬蟲(chóng)賺錢(qián)的方法
在本篇文章里小編給大家分享了關(guān)于通過(guò)python爬蟲(chóng)賺錢(qián)的方法,有興趣的朋友們學(xué)習(xí)下。2019-01-01python中(str,list,tuple)基礎(chǔ)知識(shí)匯總
本文給大家匯總介紹的是python中str(字符串)、list(列表)、tuple(元組)、dict(字典)的一些基礎(chǔ)知識(shí),有需要的小伙伴可以參考下2018-02-02Python3利用SMTP協(xié)議發(fā)送E-mail電子郵件的方法
SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式。下面這篇文章主要給大家介紹了關(guān)于Python3如何利用SMTP協(xié)議發(fā)送E-mail電子郵件的方法,需要的朋友可以參考下。2017-09-09Python的numpy庫(kù)中將矩陣轉(zhuǎn)換為列表等函數(shù)的方法
下面小編就為大家分享一篇Python的numpy庫(kù)中將矩陣轉(zhuǎn)換為列表等函數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python實(shí)現(xiàn)打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08pycharm 復(fù)制代碼出現(xiàn)空格的解決方式
這篇文章主要介紹了pycharm 復(fù)制代碼出現(xiàn)空格的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01詳解在Python中使用OpenCV進(jìn)行直線(xiàn)檢測(cè)
在圖像處理中,直線(xiàn)檢測(cè)是一種常見(jiàn)的算法,它通常獲取n個(gè)邊緣點(diǎn)的集合,并找到通過(guò)這些邊緣點(diǎn)的直線(xiàn)。本文將介紹如何在Python中利用OpenCV進(jìn)行直線(xiàn)檢測(cè),需要的可以參考一下2022-03-03Python?copy()與deepcopy()方法之間有什么區(qū)別
這篇文章主要介紹了Python中的copy()和deepcopy(),下面詳細(xì)介紹該內(nèi)容并附上詳細(xì)代碼,需要的朋友可以參考一下文章的具體內(nèi)容,希望對(duì)你有所幫助2022-10-10