[英](Python) How can i convert byte string into a raw string with double quote as
[英]How can I write raw byte characters in Python string?
我要开发一个通过套接字网络发送原始二进制数据的应用程序。
我被赋予了角色
0x53 0x69 0x75 0x64 0x69 0x5F 0x37 0x42 0x6D 0x00 0x04 0x00 0x01 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00
有人告诉我,前几个字符
0x53 0x69 0x75 0x64 0x69 0x5F 0x37 0x42
手段
Siudi_7B
也
0x6D 0x00
手段
109
所以在我的代码中我有这个
message = "Siudi_7B 109 1 1"
相当于
0x53 0x69 0x75 0x64 0x69 0x5F 0x37 0x42 0x6D 0x00 0x04 0x00 0x01 0x00
现在最后几个字节我还没有得到含义。 我应该弄清楚。 我真的尽了最大的努力,但是什么都没有。
简而言之,我需要了解与
0x01 0x00
和
0x00 0x00 0x00 0x00
从套接字获取binary
字符串时,可以使用binary.decode()
将输入转换为字符串。 类似地,当您有一个string
要写入套接字时,请使用string.encode()
将其转换为二进制。
谢谢大家,PM 2Ring的评论帮助我指出了正确的方向。
所以我认为initail文档是错误的,
109不等于0x6D 0x00 109是0x31 0x30 0x39
因此,我将要求对任务进行更多说明。 非常感谢大家。
所以在代码中我将拥有
message = b"\x31\x30\x39"
如果您想知道每个十六进制字符,则应阅读模块binascii
或codecs
。
import codecs,binascii
codes =[codecs.encode(i.encode(),"hex") for i in "Siudi_7B 109 1 1"]
print( codes )
bins = [binascii.hexlify(i.encode()) for i in "Siudi_7B 109 1 1"]
print( bins )
for x in "Siudi_7B 109 1 1":
print("{:5}".format(x),end="")
print()
print("0x"+" 0x".join([str(b.decode()) for b in bins]) )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.