关于#python#的问题:二进制转字符串解码

img


从二进制文件中读取出来的,怎么解码成字符串,再从字符串编译回去?

用一个变量a把这些存起来,你想把他转为字符串首先要知道他编码的时候是什么方式(如果不清楚反正就是utf-8,或gbk试试他们最常用),知道了什么方式编码
1.转换为字符串:c=a.decode("utf-8")打印c即可,当然我这里是以utf-8为例如果是gbk把utf-8换一下就可
2.至于把字符串转换为二进制如:c="djdj"
c.encode("utf-8")或以gbk编码换为gbk就行了

str_data = "大家好"
byte_data = str_data.encode('utf-8')
print(byte_data)  # b'\xe5\xa4\xa7\xe5\xae\xb6\xe5\xa5\xbd'
str_new = byte_data.decode('utf-8')
print(str_new)  # 大家好

1.二进制文件并不都能解码成字符串
有些二进制文件本身里面就是机器码,是用来执行的,比如exe和dll,它里面从一开始放的就不是字符串
有些二进制文件是数据文件,里面放的都是int型,float型,bool型的数据,也不是字符串
2.即使它最开始是字符串,然后编码成了二进制格式
你也要知道它是按什么格式编码的,是否经过了加密
并没有一套通用的将二进制转成str的办法


可以查看手册:python- 字符串 中的内容