【发布时间】:2020-06-20 06:50:46
【问题描述】:
我得到的字符串结构如下:"\x0C\x00Maximilianus\xf4\x01",我想动态提取前两个和后两个字节并将它们转换为小数。这个编码应该是 UTF-8 little-endian unsigned。
"\x0C\x00" 等于 12
"\xf4\x01" 等于 500
我找不到任何能够做到这一点的功能。替换字符串中的“\x”也不起作用,因为我无法使用转义字符进行操作。
有什么想法吗?
【问题讨论】:
-
你真的想要小数吗?还是整数?
-
你说你得到了字符串,但你也在谈论编码,这实际上没有意义。
-
你是如何创建这个结构的?如果您知道它是如何创建的,那么您将知道如何将其转换回来。例如:如果您使用
struct.pack()创建它,然后使用struct.unpack()将其转换回来。 -
顺便说一句:字符串
Maximilianus有12个字符,所以"\x0C\x00"可以是字符串的长度信息,也可以是某个系统在网络中发送数据 -
print(struct.unpack('hh', b"\x0C\x00\xf4\x01"))给(12, 500)
标签: python python-3.x string utf-8 hex