欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言:

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

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

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

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

1.Python encode()方法

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

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

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

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

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

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

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

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

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

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

>>> str = "C語言中文網(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 編碼,也可以手動指定其它編碼格式,例如:

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

2.Python decode()方法

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

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

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" 指定解碼時采用的字符編碼,默認(rèn)采用 utf-8 格式。當(dāng)方法中只使用這一個參數(shù)時,可以省略“encoding=”,直接寫編碼方式即可。

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

【例 2】

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

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

>>> str = "C語言中文網(wǎng)"
>>> bytes = str.encode("GBK")
>>> bytes.decode()  #默認(rèn)使用 UTF-8 編碼,會拋出以下異常
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語言中文網(wǎng)'

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

相關(guān)文章

  • Python實(shí)現(xiàn)簡單求解給定整數(shù)的質(zhì)因數(shù)算法示例

    Python實(shí)現(xiàn)簡單求解給定整數(shù)的質(zhì)因數(shù)算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)簡單求解給定整數(shù)的質(zhì)因數(shù)算法,結(jié)合實(shí)例形式分析了Python正整數(shù)分解質(zhì)因數(shù)的相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python的turtle繪圖庫使用基礎(chǔ)

    Python的turtle繪圖庫使用基礎(chǔ)

    turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,想象一個小烏龜,它根據(jù)一組函數(shù)指令的控制,在這個平面坐標(biāo)系中移動,從而在它爬行的路徑上繪制了圖形,需要的朋友可以參考下
    2023-04-04
  • 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ì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Flask框架通過Flask_login實(shí)現(xiàn)用戶登錄功能示例

    Flask框架通過Flask_login實(shí)現(xiàn)用戶登錄功能示例

    這篇文章主要介紹了Flask框架通過Flask_login實(shí)現(xiàn)用戶登錄功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了flask框架使用Flask_login實(shí)現(xiàn)用戶登陸功能的具體操作步驟、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • PyQt5按下按鍵選擇文件夾并顯示的實(shí)現(xiàn)

    PyQt5按下按鍵選擇文件夾并顯示的實(shí)現(xiàn)

    這篇文章主要介紹了PyQt5按下按鍵選擇文件夾并顯示的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python 讀取豎線分隔符的文本方法

    python 讀取豎線分隔符的文本方法

    今天小編就為大家分享一篇python 讀取豎線分隔符的文本方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python進(jìn)程間通信Queue實(shí)例解析

    Python進(jìn)程間通信Queue實(shí)例解析

    這篇文章主要介紹了Python進(jìn)程間通信Queue實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程

    Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程

    這篇文章主要介紹了Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程,Jinja2模板引擎的用法也是Flask的Web開發(fā)中的重要知識,需要的朋友可以參考下
    2016-06-06
  • 對pycharm代碼整體左移和右移縮進(jìn)快捷鍵的介紹

    對pycharm代碼整體左移和右移縮進(jìn)快捷鍵的介紹

    今天小編就為大家分享一篇對pycharm代碼整體左移和右移縮進(jìn)快捷鍵的介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中的SOLID原則實(shí)例詳解

    Python中的SOLID原則實(shí)例詳解

    SOLID原則是由Robert C. Martin提出的以首字母縮寫命名的編碼準(zhǔn)則,它代表了五種不同的編碼習(xí)慣,下面這篇文章主要給大家介紹了關(guān)于Python中SOLID原則的相關(guān)資料,需要的朋友可以參考下
    2023-02-02

最新評論