如何解压缩和解码' @ \ x01 \ x01 \ x00'?

时间:2016-05-31 09:47:58

标签: python

我遇到以下输出,我无法理解它。 你能告诉它究竟是什么吗?如何打开包装?

'@\x01\x01\x00'

它看起来不是纯粹的二进制或十六进制。 我想看看它的ASCII表示。

2 个答案:

答案 0 :(得分:2)

你有一个字节串,如果你打印它,你会看到ascii输出:

where to_date('02/06/2016','dd/mm/yyyy') <= nvl(l.effdate, to_date('12/31/9998','dd/mm/yyyy'))
   or to_date('02/06/2016','dd/mm/yyyy') <= nvl(l.expdate, sysdate)

如果您在每个整数上调用In [5]: s = '@\x01\x01\x00' In [8]: print(list(bytearray(s))) [64, 1, 1, 0] ,您会看到完全相同的输出,ascii中的64为chr@ SOH 1 NUL ,没有更多信息,例如它来自哪里,没有其他可以建议的内容。

答案 1 :(得分:1)

这似乎是一个四个字节的序列,其值为64,1,1,0。

要解释它,您需要知道它是如何编码的或它应该代表什么。

通常,您可以使用-- select with expdate < today or with no expdate select * from RATE_BILL l where l.expdate is null or l.expdate <= trunc(sysdate) 模块中的unpack函数在Python中解压缩二进制数据:

struct

第一个import struct intval = struct.unpack('i', '@\x01\x01\x00') shortvals = struct.unpack('hh', '@\x01\x01\x00') 行将为您提供解释为4字节整数的字符串的值,即65856.第二行将字符串解释为两个2字节整数(320和1)