我有一个二进制数据片段,我正在努力解码。该数据似乎不是标准文本编码,并且我没有有关所使用的编码或格式的任何具体信息。我尝试过各种常见的文本编码,如 UTF-8、UTF-16 等,但没有成功。
这是我试图解码的二进制数据:
b'v10.\xc0`\x03\xa6\xd4Z%\xe5\xc8\xe3_K\xd3\xba\xc2h\x01\x93y?\x923\x8cE~Y\xccw\x7f\x8a\xce\xff\x02 \xea\xce^\xfb\x02'
我怀疑这些数据可能与 SQL 数据有关,但我不确定如何解释它。
我期望成功地将二进制数据解码为可读的文本格式。理想情况下,我想了解数据的含义和结构。
有人可以提供有关如何在编码未知时解码此类二进制数据的指导吗?我可以使用哪些工具或方法来识别正确的编码或格式,或者我可以提供任何其他信息来获得更有针对性的帮助吗?
如有任何帮助或建议,我们将不胜感激。谢谢!
您可以使用 struct 模块来解压格式化的二进制数据。
例如这个:
import struct
data = b'v10.\xc0`\x03\xa6\xd4Z%\xe5\xc8\xe3_K\xd3\xba\xc2h\x01\x93y?\x923\x8cE~Y\xccw\x7f\x8a\xce\xff\x02\xea\xce^\xfb\x02'
# Extract float values from binary data
print(struct.unpack('<f', data[0:4]))
print(struct.unpack('<f', data[4:8]))
# Extract short integer values
print(struct.unpack('<h', data[8:10]))
print(struct.unpack('<h', data[10:12]))
# Extract byte values
print(data[12])
print(data[13])
给出了这个:
(4.006169701531448e-11,)
(-4.558087577082731e-16,)
(23252,)
(-6875,)
200
227
但是您需要了解您期望从数据中得到什么才能正确解包......