如何将一出汉字的字符串,转为十六进制?下面提供两种方法。
#以下方法,均采用utf-8编码格式,
#如果使用其它编码,比如utf-16,得到的结果则不相同
def s_to_hex1(s):
hex_list = [e.encode('utf-8').hex() for e in s]
hex_str = ''.join(hex_list)
return hex_str
#将字符串转换为十六进制
def s_to_hex2(s):
s_to_bytes = s.encode("utf-8")#转为字节,即 b'a'
print("字符转字节",s_to_bytes)
#字节转十进制
mybytes = int.from_bytes(s_to_bytes,byteorder='big')#将字节转为十进制
print("字节转十进制",mybytes)
#字节转十六进制
myhex = hex(mybytes)[2:]
print("十进制再转十六进制",myhex)
#字节转二进制
mybin = bin(mybytes)[2:]
print(mybin)
s = "乡书"
print(s_to_hex1(s))
print(s_to_hex2(s))
###输出如下
e4b9a1e4b9a6
字符转字节 b'\xe4\xb9\xa1\xe4\xb9\xa6'
字节转十进制 251485936204198
十进制再转十六进制 e4b9a1e4b9a6
111001001011100110100001111001001011100110100110