最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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類(lèi)型的對(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、常見(jiàn)編碼格式

  • 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類(lèi)型

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

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

輸出:

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

bytes 和 str 都屬于字符串類(lèi)型:

  • 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類(lèi)型」轉(zhuǎn)成「str類(lèi)型」,這意味著它只能解碼bytes類(lèi)型的字符串,解碼str類(lèi)型的字符串會(huì)報(bào)錯(cuò) AttributeError: ‘str’ object has no attribute ‘decode’

bytes類(lèi)型格式是 b'xxx',如果只有str形式的字符串(比如 '\xe5\xbc\xa0\xe4\xb8\x89'),可以在前面加上b,變成bytes類(lèi)型,再進(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一次為多個(gè)變量賦值的簡(jiǎn)便方法

    Python一次為多個(gè)變量賦值的簡(jiǎn)便方法

    在Python的世界里,簡(jiǎn)潔與優(yōu)雅是永恒的追求,當(dāng)面對(duì)需要同時(shí)處理多個(gè)變量的場(chǎng)景時(shí),如何避免冗長(zhǎng)的代碼和臨時(shí)變量的困擾?答案就藏在Python強(qiáng)大的多重賦值機(jī)制中,本文將系統(tǒng)性地探討Python中為多個(gè)變量賦值的多種方法,需要的朋友可以參考下
    2026-03-03
  • Python重試庫(kù)?Tenacity詳解(推薦)

    Python重試庫(kù)?Tenacity詳解(推薦)

    這篇文章主要介紹了Python重試庫(kù)Tenacity詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法

    python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇python opencv 讀取圖片 返回圖片某像素點(diǎn)的b,g,r值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Django如何將URL映射到視圖

    Django如何將URL映射到視圖

    這篇文章主要介紹了Django如何將URL映射到視圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python基礎(chǔ)教程之元組的定義與不可變特性(對(duì)比列表)

    Python基礎(chǔ)教程之元組的定義與不可變特性(對(duì)比列表)

    元組的魅力在于它的簡(jiǎn)單性和明確性,它不追求成為全能數(shù)據(jù)結(jié)構(gòu),而是專(zhuān)注于做好一件事,就是提供不可變的有序集合,這篇文章主要介紹了Python基礎(chǔ)教程之元組的定義與不可變特性(對(duì)比列表)的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • 如何將yolov5中的PANet層改為BiFPN詳析

    如何將yolov5中的PANet層改為BiFPN詳析

    現(xiàn)在yolov5的neck用的是PANet,在efficient論文中提出了BiFPN結(jié)構(gòu),還有更加不錯(cuò)的性能,下面這篇文章主要給大家介紹了關(guān)于如何將yolov5中的PANet層改為BiFPN的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例

    python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例

    今天小編就為大家分享一篇python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python調(diào)用函數(shù)、類(lèi)和文件操作簡(jiǎn)單實(shí)例總結(jié)

    python調(diào)用函數(shù)、類(lèi)和文件操作簡(jiǎn)單實(shí)例總結(jié)

    這篇文章主要介紹了python調(diào)用函數(shù)、類(lèi)和文件操作,結(jié)合簡(jiǎn)單實(shí)例形式總結(jié)分析了Python調(diào)用函數(shù)、類(lèi)和文件操作的各種常見(jiàn)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Python小程序爬取今日新聞拿走就能用

    Python小程序爬取今日新聞拿走就能用

    這篇文章主要教大家怎樣實(shí)現(xiàn)一個(gè)Python小程序,爬取今日新聞,文中給出了詳細(xì)的示例代碼,拿走就能用,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python?字典(Dictionary)詳細(xì)介紹

    Python?字典(Dictionary)詳細(xì)介紹

    這篇文章主要介紹了Python?字典(Dictionary)詳細(xì),字典是另一種可變?nèi)萜髂P停铱纱鎯?chǔ)任意類(lèi)型對(duì)象。下面和小編一起進(jìn)入文章學(xué)習(xí)新內(nèi)容吧,需要的朋友可以參考一下
    2022-02-02

最新評(píng)論

抚州市| 汤原县| 松滋市| 含山县| 探索| 广元市| 安阳市| 安多县| 台前县| 长乐市| 改则县| 绥芬河市| 淮北市| 汤阴县| 奉化市| 剑川县| 墨竹工卡县| 嫩江县| 贡觉县| 新乡市| 龙门县| 古丈县| 古浪县| 洛川县| 云和县| 阿鲁科尔沁旗| 临夏县| 赣州市| 嘉善县| 屯昌县| 龙门县| 疏勒县| 江达县| 灌云县| 杂多县| 石棉县| 武宁县| 长岭县| 洛隆县| 秦安县| 红桥区|