BER でエンコードされた通話データ レコード (CDR) を処理しています。GPRS トンネリング プロトコルから。その中に1つのフィールドの値を取得し'\r\n'
ました。
'\xa0\x06\x80\x04\r\n\xc4\x086'
-- これはエンコードされた文字列、またはbytearray
問題の原因です。タグa0に必要なすべての TLV 情報が含まれており、その長さは06です。内タグ80あり、長さは04です。しかし、次の方法で出力を取得すると、このように出力されます。
問題の原因となっている内部タグ80の値。その長さは04ですが、これをデコードするとpyasn1
長さが05\r
になりまし\n
た。\r\n
このデータをエンコードするエンコーダーは、それが単一の要素であると想定していると思います。しかし、pyasn1 を使用してこれをデコードしているときに、エンコードされた値の TLV 表現でこの長さが欠落しているため、エラーがスローされます。
map(ord, '\xa0\x06\x80\x04\r\n\xc4\x086')
[160, 6, 128, 4, 13, 10, 196, 8, 54]
暗黙のタグ番号を使用しています。
pyasn1 の ber デコーダーとエンコーダーを使用してこれを解決する方法はありますか。
よろしくお願いいたします。
ハリダス N.