講解python中的str函數用法「python的str方法」

最早的字符串編碼是美國標準信息交換碼,即ASCII碼,他僅對10個數字,26個大寫英文字母、26個小寫英文字母及一些其他符號進行了編碼。ASCII碼最多只能表示256個符號,每個符號佔一個字節。隨着信息技術的發展,各國文字都需要進行編碼,於是出現了GBK、GB2312、UTF-8編碼等。其中GBk和GB2312是我國制定的中文編碼標準,使用一個字節表示英文字母,2個字節表示中文字符。而UTF-8是我國通用的編碼,對全世界所有國家用到的字符都進行了編碼。UTF-8採用一個字節表示英文字符、3個字節表示中文。在Python3.X中。默認採用的編碼格式為UTF-8,採用這種編碼有效地解決了中文亂碼的問題。

Python合集之Python字符串編碼轉換

在Python中,有兩種常用的字符串類型,分別是str和bytes。其中str表示Unicode字符(ASCII碼或者其他)bytes表示二進制數據(包括編碼的文本)。這兩種類型的字符串不能拼接在一起使用。通常情況下,str在內存中以Unicode表示,一個字符對應諾幹個字節。但是如果在網絡上傳輸,或者保存到磁盤上,就需要把str轉換為字節類型,即bytes類型。

註:bytes類型的數據時帶有b前綴的字符串(用單引號或者雙引號表示)例如 b’xd2xb0’和’bmr’都是bytes類型的數據。

str類型和bytes類型之間可以通過encode()和decode()方法進行轉換,這兩個方法是互逆的過程。

Python合集之Python字符串編碼轉換

1.使用encode()方法編碼

encode()方法為str對象方法,用於將字符串轉換為二進制數據(即bytes)也稱為編碼,其語法格式如下:

str.encode([encoding="utf-8"][,errors="strict"])
參數說明:
str:表示要進行轉換的字符串
encoding="utf-8":可選參數,用於指定進行轉碼時採用的字符編碼,默認為UTF-8,如果想使用簡體中文,也可以設置為gb2312。
當只有一個參數時,也可省略前面的encoding=,直接寫編碼。
errors="strict":可選參數,用於指定錯誤處理方式,其可選址值strict(遇到非法字符就拋出異常)
ignore(忽略非法字符)、
replace(用?替換非法字符)或
 xmlcharrefreplace(使用xml的字符引用)等,默認為strict。

註:在使用encode()方法時,不會修改原字符串,如果需要修改原字符串,需要對其進行重新賦值。

例如:

verse='野渡無人舟自橫'
byte=verse.encode('GBK')
print('原字符串:',verse)
print('轉換後:',byte)
Python合集之Python字符串編碼轉換

2.使用decode()方法

decode()方法為bytes對象的方法,用於將二進制轉換為字符串,即將使用encode()方法轉換的結果再轉換為字符串,也稱為“解碼”,語法格式如下:

bytes.decode([encoding="utf-8"][,errors="strict"])
參數說明:
bytes:表示要進行轉為二進制數據,通過是encode()方法轉換後的結果。
encoding="utf-8":可選參數,用於指定進行解碼時採用的字符編碼默認為utf-8,如果想使用簡體中文,可以設置為gb2312。
當只有一個參數時,可以省略前面的encoding=,直接寫編碼。
errors="strict":可選參數,用於指定錯誤處理方式,其可選址值strict(遇到非法字符就拋出異常)
ignore(忽略非法字符)、
replace(用?替換非法字符)或
 xmlcharrefreplace(使用xml的字符引用)等,默認為strict。

註:在使用decode()方法時,不會修改原字符串,如果需要修改原字符串,需要對其進行重新賦值。

例如:上面示例中編碼後得到的結果,在這裡進行解碼:

print('解碼後:',byte.decode('GBK'))

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/273666.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:07
下一篇 2024-12-17 14:07

相關推薦

發表回復

登錄後才能評論