最早的字串編碼是美國標準資訊交換碼,即ascii碼,他僅對10個數字,26個大寫英文本母、26個小寫英文本母及一些其他符號進行了編碼。ascii碼最多只能表示256個符號,每個符號佔乙個位元組。隨著資訊科技的發展,各國文字都需要進行編碼,於是出現了gbk、gb2312、utf-8編碼等。其中gbk和gb2312是我國制定的中文編碼標準,使用乙個位元組表示英文本母,2個位元組表示中文字元。而utf-8是我國通用的編碼,對全世界所有國家用到的字元都進行了編碼。utf-8採用乙個位元組表示英文本元、3個位元組表示中文。在python3.x中。預設採用的編碼格式為utf-8,採用這種編碼有效地解決了中文亂碼的問題。
在python中,有兩種常用的字串型別,分別是str和bytes。其中str表示unicode字元(ascii碼或者其他)bytes表示二進位制資料(包括編碼的文字)。這兩種型別的字串不能拼接在一起使用。通常情況下,str在記憶體中以unicode表示,乙個字元對應諾幹個位元組。但是如果在網路上傳輸,或者儲存到磁碟上,就需要把str轉換為位元組型別,即bytes型別。
注:bytes型別的資料時帶有b字首的字串(用單引號或者雙引號表示)例如 b'\xd2\xb0'和'bmr'都是bytes型別的資料。
str型別和bytes型別之間可以通過encode()和decode()方法進行轉換,這兩個方法是互逆的過程。
encode()方法為str物件方法,用於將字串轉換為二進位制資料(即bytes)也稱為編碼,其語法格式如下:
str.encode([encoding="注:在使用encode()方法時,不會修改原字串,如果需要修改原字串,需要對其進行重新賦值。utf-8
"][,errors="
strict"])
引數說明:
str:表示要進行轉換的字串
encoding="
utf-8
":可選引數,用於指定進行轉碼時採用的字元編碼,預設為utf-8,如果想使用簡體中文,也可以設定為gb2312。
當只有乙個引數時,也可省略前面的encoding=,直接寫編碼。
errors="
strict
":可選引數,用於指定錯誤處理方式,其可選址值strict(遇到非法字元就丟擲異常)
ignore(忽略非法字元)、
replace(用?替換非法字元)或
xmlcharrefreplace(使用xml的字元引用)等,預設為strict。
例如:
verse='decode()方法為bytes物件的方法,用於將二進位制轉換為字串,即將使用encode()方法轉換的結果再轉換為字串,也稱為「解碼」,語法格式如下:野渡無人舟自橫
'byte=verse.encode('
gbk'
)print('
原字串:
',verse)
print('
轉換後:
',byte)
bytes.decode([encoding="utf-8
"][,errors="
strict"])
引數說明:
bytes:表示要進行轉為二進位制資料,通過是encode()方法轉換後的結果。
encoding="
utf-8
":可選引數,用於指定進行解碼時採用的字元編碼預設為utf-8,如果想使用簡體中文,可以設定為gb2312。
當只有乙個引數時,可以省略前面的encoding=,直接寫編碼。
errors="strict":可選引數,用於指定錯誤處理方式,其可選址值strict(遇到非法字元就丟擲異常)注:在使用decode()方法時,不會修改原字串,如果需要修改原字串,需要對其進行重新賦值。ignore(忽略非法字元)、
replace(用?替換非法字元)或
xmlcharrefreplace(使用xml的字元引用)等,預設為strict。
例如:上面示例中編碼後得到的結果,在這裡進行解碼:
print('花絮:解碼後:
',byte.decode('
gbk'))
Python合集之Python字典(四)
ps 前段時間因為年底時間比較繁忙,沒有及時更新,望大家見諒,今天趁著大年初一趕緊給大家更新一波。由於字典是可變序列,所以可以隨時在字典中新增 鍵 值 對 向字典中新增元素的語法格式如下 dictionary key value 引數說明 dictionary 表示字典名稱 key 表示要新增元素的...
Python合集之Python元組(一)
在上一節的合集中,我們了解了python的二維列表的相關知識,本節我們將進一步了解一下python元組的相關知識。元組是python中另一種重要的序列結構,與列表類似,也是由一系列按特定順序排列的元素組成,但是他是不可變序列。因此,元組也可以稱為不可變的列表。在形式上,元組的所有元素都放在 中,兩個...
Python合集之Python列表(五)
在上一節的合集中,我們了解了python 列表中元素的統計及計算的相關知識,本節我們將進一步了解一下python列表中元素的排序的相關知識。在實際開發中,經常需要對列表進行排序。python中提供了兩種常用的對列表進行排序的方法 使用列表物件的sort 方法,使用內建的sorted 函式。列表物件提...