Python字符串编码转换

时间:2023-12-22 21:55:14

使用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'
解码后的结果: 野渡无人舟自横