#coding=utf-8
import sys
import os
import codecs
import base64
myhexstr = "5C61"
print('16进制数据:' + myhexstr)
mytestbytes = codecs.decode(myhexstr, "hex")
print('转换后byte数据[' + str(len(mytestbytes)) +']:')
print(mytestbytes)
myteststr = mytestbytes.decode('unicode_escape')
print('decode后数据长度[' + str(len(myteststr))+']')
decodestr = ''.join(['%02X' % ord(i) for i in myteststr])
print('decodestr:',decodestr)
b16str = base64.b16encode(mytestbytes)
print('b16encode后数据[' + str(len(b16str)) + ']:' + str(b16str))
python mychange.py
16进制数据:5C61
转换后byte数据[2]:
\a
decode后数据长度[1]
('decodestr:', '07')
b16encode后数据[4]:5C61
python3 mychange.py
16进制数据:5C61
转换后byte数据[2]:
b'\\a'
decode后数据长度[1]
decodestr: 07
b16encode后数据[4]:b'5C61'
通过decode转换,数据丢失,可以通过使用base64.b16encode替换转换