带回车符的Pyasn1 BER编码\r\n

2024-06-16 09:50:59 发布

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

我正在处理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


Tags: 数据编码记录标签编码器解码xa0x04
1条回答
网友
1楼 · 发布于 2024-06-16 09:50:59

我不熟悉pyasn1,但我建议把重点放在传入的数据上,因为这对我来说意味着有一些东西将二进制字节集当作文本来处理。。。在

如果内部标记确实是len 4,则a是否已被替换为\r\n?在

相关问题 更多 >