gbk編碼轉換在線 漢字gbk編碼查詢網



文章插圖
gbk編碼轉換在線 漢字gbk編碼查詢網

文章插圖
最早的字符串編碼是美國標準信息交換碼,即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’xd2xb0’和’bmr’都是bytes類型的數據 。
str類型和bytes類型之間可以通過encode()和decode()方法進行轉換,這兩個方法是互逆的過程 。
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)
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()方法時,不會修改原字符串,如果需要修改原字符串,需要對其進行重新賦值 。
例如:上面示例中編碼后得到的結果,在這里進行解碼:
【gbk編碼轉換在線 漢字gbk編碼查詢網】print('解碼后:',byte.decode('GBK'))