在Python中解码未知格式的字节字符串

2024-09-28 22:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图把一个字节字符串解码成一个普通字符串,然后解析它的内容。你知道吗

我有二进制代码_字符串.解码()函数的格式不同,但字符串从未完全解码。你知道吗

下面是一个例子

test = b'\x14\x00\x00\x00\x146/21/2015 2:06:41 AM\x08StepA;Used=2819379|Unused=1889|Invalid=56397\nAuto\x052.6.2\x149/3/2015 10:19:35 PM\x04Scan\x84\x01sherID=N371|ScanID=N371|SoftwareVersion=3.3.28\x16Control Software\x063.3.28\x149/3/2015 10:19:35 PM\x08Reg\x19Extract=Standard\x16Control Software\x063.2.28\x149/3/2016 10:19:35 PM\x07Extract=Standard\x16Control Software\x063.2.28\x146/21/2015 2:07:45 AM\x08StepB;Used=2903508|Unused=1874|Invalid=34099'

#test.decode('cp437') # this works too
print(test.decode("utf-8", "ignore"))

这将返回:

6/21/2015 2:06:41 AStepA;Used=2819379|Unused=1889|Invalid=56397
AutoDec2.6.29/3/2015 10:19:35 PMScansherID=N371|ScanID=N371|SoftwareVersion=3.3.28Control Software3.3.289/3/2015 10:19:35 PRegExtract=StandardControl Software3.2.289/3/2016 10:19:35 PMExtract=StandardControl Software3.2.286/21/2015 2:07:45 AStepB;Used=2903508|Unused=1874|Invalid=34099

这是好的,我可能会写一个解析器来重新格式化文本,但我觉得我在这里做错了什么,没有正确解码字节字符串。你知道吗

我希望这样:

6/21/2015 2:06:41 AM  StepA Used=2819379|Unused=1889|Invalid=56397 AutoDec 2.6.2
9/3/2015 10:19:35 PM  Scan sherID=N371|ScanID=N371|SoftwareVersion=3.3.28 Control Software 3.3.28
9/3/2015 10:19:35 PM  Reg  Extract=Standard Control Software 3.2.28
9/3/2016 10:19:35 PM  Extract=Standard  Control Software 3.2.28
6/21/2015 2:07:45 AM  StepB Used=2903508|Unused=1874|Invalid=34099

谢谢你的帮助!你知道吗


Tags: 字符串testunusedsoftware解码amstandardused