91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python字符串編碼轉換encode()和decode()方法怎么使用

發布時間:2021-12-13 09:12:21 來源:億速云 閱讀:171 作者:iii 欄目:開發技術

這篇文章主要講解了“Python字符串編碼轉換encode()和decode()方法怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python字符串編碼轉換encode()和decode()方法怎么使用”吧!

前言:

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

隨著信息技術的發展,各國的文字都需要進行編碼,于是相繼出現了 GBKGB2312、UTF-8 編碼等,其中 GBK 和 GB2312 是我國制定的中文編碼標準,規定英文字符母占用 1 個字節,中文字符占用 2 個字節;而 UTF-8 是國際通過的編碼格式,它包含了全世界所有國家需要用到的字符,其規定英文字符占用 1 個字節,中文字符占用 3 個字節。

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

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

1.Python encode()方法

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

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

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

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

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

表 1 encode()參數及含義:

參數含義
str表示要進行轉換的字符串。
encoding = "utf-8"指定進行編碼時采用的字符編碼,該選項默認采用 utf-8 編碼。例如,如果想使用簡體中文,可以設置 gb2312。

當方法中只使用這一個參數時,可以省略前邊的“encoding=”,直接寫編碼格式,例如 str.encode("UTF-8")。
errors = "strict"指定錯誤處理方式,其可選擇值可以是:
  • strict:遇到非法字符就拋出異常。

  • ignore:忽略非法字符。

  • replace:用“?”替換非法字符。

  • xmlcharrefreplace:使用 xml 的字符引用。

該參數的默認值為 strict。

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

【例 1】將 str 類型字符串“C語言中文網”轉換成 bytes 類型。

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

此方式默認采用 UTF-8 編碼,也可以手動指定其它編碼格式,例如:

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

2.Python decode()方法

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

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

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

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

表 2 decode()參數及含義:

參數含義
bytes表示要進行轉換的二進制數據。
encoding="utf-8"指定解碼時采用的字符編碼,默認采用 utf-8 格式。當方法中只使用這一個參數時,可以省略“encoding=”,直接寫編碼方式即可。

注意,對 bytes 類型數據解碼,要選擇和當初編碼時一樣的格式。
errors = "strict"指定錯誤處理方式,其可選擇值可以是:
  • strict:遇到非法字符就拋出異常。

  • ignore:忽略非法字符。

  • replace:用“?”替換非法字符。

  • xmlcharrefreplace:使用 xml 的字符引用。

該參數的默認值為 strict。

【例 2】

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

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

>>> str = "C語言中文網"
>>> bytes = str.encode("GBK")
>>> bytes.decode()  #默認使用 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語言中文網'

感謝各位的閱讀,以上就是“Python字符串編碼轉換encode()和decode()方法怎么使用”的內容了,經過本文的學習后,相信大家對Python字符串編碼轉換encode()和decode()方法怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和龙市| 武川县| 深州市| 晋州市| 莲花县| 聂拉木县| 荔波县| 东平县| 香港| 杨浦区| 石景山区| 资源县| 苗栗县| 海丰县| 沿河| 锡林浩特市| 兰州市| 永福县| 千阳县| 天峻县| 柯坪县| 靖远县| 科技| 常山县| 门头沟区| 温泉县| 镇雄县| 宁津县| 梓潼县| 勐海县| 怀化市| 浦江县| 合作市| 铅山县| 习水县| 北宁市| 三穗县| 吉林市| 罗山县| 澎湖县| 山阴县|