1. 程式人生 > >Python字串編碼轉換

Python字串編碼轉換

使用encode()方法編碼

str.encode([encoding="utf-8"][,errors="strict"])
  • str:表示需要轉換的字串
  • encoding=“utf-8”:可選引數,用於指定進行轉碼時採用的字元編碼,預設為UTF-8,如果想使用簡體中文,也可以設定為gb2312。當只有這一個引數時,也可以省略前面的“encoding=”,直接寫編碼。
  • errors=“strict”:可選引數,用於指定錯誤處理方式,其可選擇值可以是strict(遇到非法字元就丟擲異常)、ignore(忽略非法字元)、replace(用"?"替換非法字元) 或 xmlcharrefreplace(使用XML的字元引用)等,預設strict。

UTF-8示例程式碼:

verse = "野渡無人舟自橫"
byte = verse.encode()
print("原始字串:", verse)
print("轉換後的二進位制資料:", byte)

執行結果:
	原始字串: 野渡無人舟自橫
	轉換後的二進位制資料: b'\xe9\x87\x8e\xe6\xb8\xa1\xe6\x97\xa0\xe4\xba\xba\xe8\x88\x9f\xe8\x87\xaa\xe6\xa8\xaa'

GBK程式碼示例:

verse = "野渡無人舟自橫"
byte = verse.encode('GBK')
print("原始字串:", verse)
print("轉換後的二進位制資料:", byte)

執行結果:
	原始字串: 野渡無人舟自橫
	轉換後的二進位制資料: b'\xd2\xb0\xb6\xc9\xce\xde\xc8\xcb\xd6\xdb\xd7\xd4\xba\xe1'

使用decode()方法解碼

decode()方法為bytes物件的方法用於將二進位制資料轉換為字串,即將使用encode()方法轉換的結果再轉換為字串,也稱為“解碼”。

bytes.decode([encoding="utf-8"][,errors="strict"])
  • bytes:表示要進行轉換的二進位制資料,通常是encode()方法轉換的結果。
  • encoding=“utf-8”:可選引數,用於指定進行解碼時採用的字元編碼,預設為UTF-8,如果想使用簡體中文,也可以設定為gb2312。當只有這一個引數時,也可以省略前面的“encoding=”,直接寫編碼。

示例程式碼:

verse = "野渡無人舟自橫"
byte = verse.encode('GBK')
print("原始字串:", verse)
print("轉換後的二進位制資料:", byte)
print('解碼後的結果:', byte.decode('gbk'))

執行結果:
	原始字串: 野渡無人舟自橫
	轉換後的二進位制資料: b'\xd2\xb0\xb6\xc9\xce\xde\xc8\xcb\xd6\xdb\xd7\xd4\xba\xe1'
	解碼後的結果: 野渡無人舟自橫