我正在尝试将字节字符串解码为普通字符串,然后解析其内容。
我的binary_string.decode()函数格式不同,但字符串永远不会完全解码。
这是一个例子
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
感谢您的帮助!