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

Python字符串編碼轉(zhuǎn)換 encode()和decode()方法詳細(xì)說(shuō)明

 更新時(shí)間:2021年12月12日 10:34:02   作者:C語(yǔ)言中國(guó)網(wǎng)  
這篇文章主要介紹了Python字符串編碼轉(zhuǎn)換 encode()和decode()方法詳細(xì)的說(shuō)明,下面文章圍繞encode()和decode()方法的相相關(guān)資料展開(kāi)內(nèi)容,具有一定的價(jià)值,需要的朋友卡通參考一下

前言:

我們知道,最早的字符串編碼是 ASCII 編碼,它僅僅對(duì) 10 個(gè)數(shù)字、26 個(gè)大小寫(xiě)英文字母以及一些特殊字符進(jìn)行了編碼。ASCII 碼做多只能表示 256 個(gè)符號(hào),每個(gè)字符只需要占用 1 個(gè)字節(jié)。

隨著信息技術(shù)的發(fā)展,各國(guó)的文字都需要進(jìn)行編碼,于是相繼出現(xiàn)了 GBKGB2312、UTF-8 編碼等,其中 GBK 和 GB2312 是我國(guó)制定的中文編碼標(biāo)準(zhǔn),規(guī)定英文字符母占用 1 個(gè)字節(jié),中文字符占用 2 個(gè)字節(jié);而 UTF-8 是國(guó)際通過(guò)的編碼格式,它包含了全世界所有國(guó)家需要用到的字符,其規(guī)定英文字符占用 1 個(gè)字節(jié),中文字符占用 3 個(gè)字節(jié)。

Python 3.x 默認(rèn)采用 UTF-8 編碼格式,有效地解決了中文亂碼的問(wèn)題。

Python 中,有 2 種常用的字符串類(lèi)型,分別為 str bytes 類(lèi)型,其中 str 用來(lái)表示 Unicode 字符,bytes 用來(lái)表示二進(jìn)制數(shù)據(jù)。str 類(lèi)型和 bytes 類(lèi)型之間就需要使用 encode() decode() 方法進(jìn)行轉(zhuǎn)換。

1.Python encode()方法

encode() 方法為字符串類(lèi)型(str)提供的方法,用于將 str 類(lèi)型轉(zhuǎn)換成 bytes 類(lèi)型,這個(gè)過(guò)程也稱(chēng)為“編碼”。

encode() 方法的語(yǔ)法格式如下:

str.encode([encoding="utf-8"][,errors="strict"])

注意:格式中用 [] 括起來(lái)的參數(shù)為可選參數(shù),也就是說(shuō),在使用此方法時(shí),可以使用 [] 中的參數(shù),也可以不使用。

該方法各個(gè)參數(shù)的含義如表 1 所示。

表 1 encode()參數(shù)及含義:

參數(shù) 含義
str 表示要進(jìn)行轉(zhuǎn)換的字符串。
encoding = "utf-8" 指定進(jìn)行編碼時(shí)采用的字符編碼,該選項(xiàng)默認(rèn)采用 utf-8 編碼。例如,如果想使用簡(jiǎn)體中文,可以設(shè)置 gb2312。

當(dāng)方法中只使用這一個(gè)參數(shù)時(shí),可以省略前邊的“encoding=”,直接寫(xiě)編碼格式,例如 str.encode("UTF-8")。
errors = "strict" 指定錯(cuò)誤處理方式,其可選擇值可以是:
  • strict:遇到非法字符就拋出異常。
  • ignore:忽略非法字符。
  • replace:用“?”替換非法字符。
  • xmlcharrefreplace:使用 xml 的字符引用。
該參數(shù)的默認(rèn)值為 strict。

注意:使用 encode() 方法對(duì)原字符串進(jìn)行編碼,不會(huì)直接修改原字符串,如果想修改原字符串,需要重新賦值。

【例 1】將 str 類(lèi)型字符串“C語(yǔ)言中文網(wǎng)”轉(zhuǎn)換成 bytes 類(lèi)型。

>>> str = "C語(yǔ)言中文網(wǎng)"
>>> str.encode()
b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'

此方式默認(rèn)采用 UTF-8 編碼,也可以手動(dòng)指定其它編碼格式,例如:

>>> str = "C語(yǔ)言中文網(wǎng)"
>>> str.encode('GBK')
b'C\xd3\xef\xd1\xd4\xd6\xd0\xce\xc4\xcd\xf8'

2.Python decode()方法

encode() 方法正好相反,decode() 方法用于將 bytes 類(lèi)型的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為 str 類(lèi)型,這個(gè)過(guò)程也稱(chēng)為“解碼”。

decode() 方法的語(yǔ)法格式如下:

bytes.decode([encoding="utf-8"][,errors="strict"])

該方法中各參數(shù)的含義如表 2 所示。

表 2 decode()參數(shù)及含義:

參數(shù) 含義
bytes 表示要進(jìn)行轉(zhuǎn)換的二進(jìn)制數(shù)據(jù)。
encoding="utf-8" 指定解碼時(shí)采用的字符編碼,默認(rèn)采用 utf-8 格式。當(dāng)方法中只使用這一個(gè)參數(shù)時(shí),可以省略“encoding=”,直接寫(xiě)編碼方式即可。

注意,對(duì) bytes 類(lèi)型數(shù)據(jù)解碼,要選擇和當(dāng)初編碼時(shí)一樣的格式。
errors = "strict" 指定錯(cuò)誤處理方式,其可選擇值可以是:
  • strict:遇到非法字符就拋出異常。
  • ignore:忽略非法字符。
  • replace:用“?”替換非法字符。
  • xmlcharrefreplace:使用 xml 的字符引用。
該參數(shù)的默認(rèn)值為 strict。

【例 2】

>>> str = "C語(yǔ)言中文網(wǎng)"
>>> bytes=str.encode()
>>> bytes.decode()
'C語(yǔ)言中文網(wǎng)'

注意:如果編碼時(shí)采用的不是默認(rèn)的 UTF-8 編碼,則解碼時(shí)要選擇和編碼時(shí)一樣的格式,否則會(huì)拋出異常,例如:

>>> str = "C語(yǔ)言中文網(wǎng)"
>>> bytes = str.encode("GBK")
>>> bytes.decode()  #默認(rèn)使用 UTF-8 編碼,會(huì)拋出以下異常
Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    bytes.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 1: invalid continuation byte
>>> bytes.decode("GBK")
'C語(yǔ)言中文網(wǎng)'

到此這篇關(guān)于Python字符串編碼轉(zhuǎn)換 encode()decode()方法詳細(xì)說(shuō)明的文章就介紹到這了,更多相關(guān)Python encode()和decode()方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 中制作偶數(shù)列表的方法

    Python 中制作偶數(shù)列表的方法

    這篇文章主要介紹了Python 中制作偶數(shù)列表的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Google colab中從kaggle中接入數(shù)據(jù)的操作方法

    Google colab中從kaggle中接入數(shù)據(jù)的操作方法

    這篇文章主要介紹了Google colab中如何從kaggle中接入數(shù)據(jù),本文涉及到兩大平臺(tái)內(nèi)容,所以我默認(rèn)你已經(jīng)擁有了,并且使用過(guò)了一段時(shí)間的google賬號(hào)和kaggle賬號(hào),需要的朋友可以參考下
    2024-03-03
  • Python虛擬機(jī)棧幀對(duì)象及獲取源碼學(xué)習(xí)

    Python虛擬機(jī)棧幀對(duì)象及獲取源碼學(xué)習(xí)

    這篇文章主要為大家介紹了Python虛擬機(jī)棧幀對(duì)象及獲取源碼學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Python編程實(shí)現(xiàn)的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法示例

    Python編程實(shí)現(xiàn)的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法示例

    這篇文章主要介紹了Python編程實(shí)現(xiàn)的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法,結(jié)合實(shí)例形式分析了神經(jīng)網(wǎng)絡(luò)算法的原理及Python相關(guān)算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解

    Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解

    Matplotlib?提供了大量配置參數(shù),這些參數(shù)可以但不限于讓我們從整體上調(diào)整通過(guò)?Matplotlib?繪制的圖形樣式,下面我們就來(lái)看看如何巧妙的運(yùn)用這些參數(shù)吧
    2023-08-08
  • python禁用鍵鼠與提權(quán)代碼實(shí)例

    python禁用鍵鼠與提權(quán)代碼實(shí)例

    這篇文章主要介紹了python禁用鍵鼠與提權(quán)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python基于SMTP發(fā)送QQ郵件

    python基于SMTP發(fā)送QQ郵件

    這篇文章主要為大家詳細(xì)介紹了python基于SMTP發(fā)送QQ郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • python?list與numpy數(shù)組效率對(duì)比

    python?list與numpy數(shù)組效率對(duì)比

    這篇文章主要介紹了python?list與numpy數(shù)組效率對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python實(shí)時(shí)獲取cmd的輸出

    Python實(shí)時(shí)獲取cmd的輸出

    本文給大家分享python實(shí)時(shí)獲取cmd的輸出,對(duì)python實(shí)時(shí)獲取輸出相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Python虛擬環(huán)境virtualenv是如何使用的

    Python虛擬環(huán)境virtualenv是如何使用的

    今天給大家?guī)?lái)的是關(guān)于Python虛擬環(huán)境的相關(guān)知識(shí),文章圍繞著Python虛擬環(huán)境virtualenv是如何使用的展開(kāi),文中有非常詳細(xì)的解釋及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

松江区| 新丰县| 苗栗县| 青川县| 称多县| 锡林郭勒盟| 凤凰县| 平远县| 太仆寺旗| 延津县| 安乡县| 韶关市| 古田县| 林甸县| 油尖旺区| 墨玉县| 天峨县| 祥云县| 原阳县| 罗源县| 鄂伦春自治旗| 大庆市| 搜索| 拉萨市| 东安县| 天台县| 游戏| 宜宾市| 嫩江县| 安顺市| 密山市| 德格县| 泰宁县| 景谷| 楚雄市| 潍坊市| 白银市| 四川省| 阳泉市| 敦化市| 黄石市|