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.