亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python編碼解碼之encode()函數(shù)詳解

 更新時(shí)間:2023年07月26日 09:50:05   作者:士別三日wyx  
這篇文章主要給大家介紹了關(guān)于Python編碼解碼之encode()函數(shù)的相關(guān)資料,Python的encode函數(shù)用于將字符串按照指定的編碼方式進(jìn)行編碼,返回一個(gè)bytes類型的對(duì)象,需要的朋友可以參考下

encode

encode() 可以對(duì)字符串進(jìn)行「編碼」,常用來(lái)對(duì)「中文」字符串進(jìn)行編碼,以解決「亂碼」問(wèn)題。

語(yǔ)法

string.encode( encoding, errors )

參數(shù)

  • encodeing :(可選)指定編碼,默認(rèn) UTF-8
  • errors :(可選)設(shè)置錯(cuò)誤處理方式,默認(rèn)

返回值

  • 返回編碼后的「新字符串」

實(shí)例:對(duì)字符串進(jìn)行GBK編碼

str1 = 'hello'
print(str1.encode('gbk'))

輸出:

b'hello'

1、常見編碼格式

  • ASCLL:美國(guó)早期制定的編碼規(guī)范,只能表示128個(gè)字符。
  • GB2312:中國(guó)在ASCLL基礎(chǔ)上對(duì)中文進(jìn)行擴(kuò)展,可以表示6763個(gè)漢字符號(hào)。
  • GBK:對(duì)GB2312的進(jìn)一步擴(kuò)展(K指擴(kuò)),收錄了21886個(gè)漢字符號(hào)。
  • GB18030:對(duì)GBK再一次擴(kuò)充,收錄了70244個(gè)漢字符號(hào)。
  • Unicode:字符集,包含了世界上目前所有的符號(hào),全球的所有文字都可以解析,字符是定長(zhǎng)的,統(tǒng)一為16位
  • UTF-8:使用最廣的一種Unicode的實(shí)現(xiàn)方式,每次8個(gè)位傳輸數(shù)據(jù);體積太大,國(guó)內(nèi)通常使用GBK。
  • UTF-16:Unicode的另一種實(shí)現(xiàn)方式,每次傳輸16位數(shù)據(jù)

各個(gè)編碼實(shí)例:

print('hello'.encode('gb2312'))
print('hello'.encode('gbk'))
print('hello'.encode('gb18030'))
print('hello'.encode('utf8'))
print('hello'.encode('utf16'))

輸出:

b'hello'
b'hello'
b'hello'
b'hello'
b'\xff\xfeh\x00e\x00l\x00l\x00o\x00'

仔細(xì)觀察返回結(jié)果就會(huì)發(fā)現(xiàn),字符串前面都加了個(gè)b,接下來(lái)我們了解一下這是什么含義。

2、返回的是Bytes類型

encode() 編碼后會(huì)返回一個(gè)「Bytes類型」的結(jié)果,而不是「str類型」

str1 = 'hello'
print(type(str1))
print(type(str1.encode()))

輸出:

<class 'str'>
<class 'bytes'>

bytes 和 str 都屬于字符串類型:

  • str 以Unicode code points形式存儲(chǔ)(人認(rèn)識(shí)的形式)
  • bytes 以byte形式存儲(chǔ)(機(jī)器認(rèn)識(shí)的形式)

bytes 是一個(gè)「二進(jìn)制」序列對(duì)象,定義時(shí)在字符串前面加上b(英文可以,中文需要先encode)

str1 = b'hello'
print(type(str1))

輸出:

<class 'bytes'>

3、錯(cuò)誤處理方式

encode() 在編碼時(shí),經(jīng)常會(huì)遇到「無(wú)法編碼」的字符,這時(shí)就可以用 errors 設(shè)置適當(dāng)?shù)奶幚矸绞剑?/p>

  • strict:失敗時(shí)引發(fā)錯(cuò)誤
  • ignore:忽略無(wú)法編碼的字符
  • backslashreplace:用反斜杠替換無(wú)法編碼的字符
  • namereplace:用解釋字符的文本替換無(wú)法編碼的字符
  • replace:用問(wèn)號(hào)替換無(wú)法編碼的字符
  • xmlcharrefreplace:用xml字符替換字符

如果給「兩個(gè)參數(shù)」,可以自動(dòng)按順序復(fù)制給參數(shù);如果只給「一個(gè)參數(shù)」,需要用參數(shù)名指定。

print('hello'.encode('gbk', 'strict'))
print('hello'.encode(errors='ignore'))
print('hello'.encode(errors='backslashreplace'))
print('hello'.encode(errors='namereplace'))
print('hello'.encode(errors='replace'))
print('hello'.encode(errors='xmlcharrefreplace'))

4、解碼

decode() 會(huì)將「bytes類型」轉(zhuǎn)成「str類型」,這意味著它只能解碼bytes類型的字符串,解碼str類型的字符串會(huì)報(bào)錯(cuò) AttributeError: ‘str’ object has no attribute ‘decode’

bytes類型格式是 b'xxx',如果只有str形式的字符串(比如 '\xe5\xbc\xa0\xe4\xb8\x89'),可以在前面加上b,變成bytes類型,再進(jìn)行解碼

print(b'\xe5\xbc\xa0\xe4\xb8\x89'.decode())

輸出:

張三

總結(jié)

到此這篇關(guān)于Python編碼解碼之encode()函數(shù)的文章就介紹到這了,更多相關(guān)Python encode()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python的turtle模塊畫圖的方法

    使用Python的turtle模塊畫圖的方法

    這篇文章主要介紹了使用Python的turtle模塊畫圖的方法,涉及turtle簡(jiǎn)介,運(yùn)動(dòng)命令,畫筆控制命令的分享,以及具體操作的步驟,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • pycharm-professional-2020.1下載與激活的教程

    pycharm-professional-2020.1下載與激活的教程

    這篇文章主要介紹了pycharm-professional-2020.1下載與激活的教程,本文分為安裝和永久激活兩部分內(nèi)容,需要的朋友可以參考下
    2020-09-09
  • Python基于mysql實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Python基于mysql實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Python基于mysql實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python NaN空值的處理示例詳解

    Python NaN空值的處理示例詳解

    這篇文章主要介紹了Python NaN空值的處理,通過(guò)本文的介紹,對(duì)Python去掉數(shù)組中的空值NaN有了更加深入的了解,在實(shí)際的數(shù)據(jù)分析工作中,我們可以根據(jù)具體的情況選擇合,需要的朋友可以參考下
    2023-11-11
  • python檢測(cè)主機(jī)的連通性并記錄到文件的實(shí)例

    python檢測(cè)主機(jī)的連通性并記錄到文件的實(shí)例

    今天小編就為大家分享一篇python檢測(cè)主機(jī)的連通性并記錄到文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python 函數(shù)list&read&seek詳解

    Python 函數(shù)list&read&seek詳解

    這篇文章主要介紹了Python 函數(shù)list&read&seek詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python3中關(guān)于cookie的創(chuàng)建與保存

    Python3中關(guān)于cookie的創(chuàng)建與保存

    今天小編就為大家分享一篇關(guān)于Python3中關(guān)于cookie的創(chuàng)建與保存的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Java基礎(chǔ)技術(shù)之反射詳解

    Java基礎(chǔ)技術(shù)之反射詳解

    這篇文章主要介紹了Java基礎(chǔ)技術(shù)之反射詳解,反射就是把Java類中的各個(gè)部分,映射成一個(gè)個(gè)的Java對(duì)象,拿到這些對(duì)象后可以做一些事情,需要的朋友可以參考下
    2023-07-07
  • pandas中read_csv的缺失值處理方式

    pandas中read_csv的缺失值處理方式

    今天小編就為大家分享一篇pandas中read_csv的缺失值處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python進(jìn)行OpenCV實(shí)戰(zhàn)之畫圖(直線、矩形、圓形)

    python進(jìn)行OpenCV實(shí)戰(zhàn)之畫圖(直線、矩形、圓形)

    這篇文章主要為大家詳細(xì)介紹了python進(jìn)行OpenCV實(shí)戰(zhàn)之畫圖功能,畫出直線、矩形、圓形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評(píng)論