我正在处理BER编码的呼叫数据记录(CDR)。来自GPRS隧道协议。其中我得到了一个字段的值,其中有'\r\n'
。在
'\xa0\x06\x80\x04\r\n\xc4\x086'
——这是导致问题的编码字符串或bytearray
。它拥有标签a0所需的所有TLV信息,长度为06。有一个内部标签80,长度04。但是如果我们以下面的方式输出,它会像这样打印。在
导致问题的内部标记80的值。它的长度是04,但是当我们用pyasn1
解码时,长度变成了05,因为它分别计算\r
和{\r\n
是一个元素。但是在使用pyasn1解码时,由于编码值的TLV表示缺少长度,它会抛出一个错误。在
map(ord, '\xa0\x06\x80\x04\r\n\xc4\x086')
[160, 6, 128, 4, 13, 10, 196, 8, 54]
我们使用隐式标签号。在
有没有什么方法可以用pyasn1的误码解码器和编码器来解决这个问题呢。在
谢谢和问候
哈里达斯N
我不熟悉pyasn1,但我建议把重点放在传入的数据上,因为这对我来说意味着有一些东西将二进制字节集当作文本来处理。。。在
如果内部标记确实是len 4,则a是否已被替换为\r\n?在
相关问题 更多 >
编程相关推荐