【问题标题】:decoding asn.1 compiler output as strings将 asn.1 编译器输出解码为字符串
【发布时间】:2012-08-27 11:40:05
【问题描述】:

我运行了免费的在线编译器(http://lionet.info/asn1c/asn1c.cgi)并为 IMSRecord(电信 CDR)创建了源文件。

它构建得很好,但是当我运行生成的 C 可执行文件时,它会将字符串打印为十六进制字符,如下所示: SIP-方法:49 4E 56 49 54 45

我怎样才能让它打印为

sIP-方法:邀请

我尝试了各种命令行选项,但无法更改。

这可能与我当时可能不了解的在线编译器选项之一有关吗?

谢谢,

米奇

【问题讨论】:

    标签: asn.1


    【解决方案1】:

    OCTET STRING 类型不应该是可打印的。因此 asn1c 打印出这串字节的十六进制转储。如果你想要一个可读的输出,我建议用类似 IA5String 或 UTF8String 的东西替换 OCTET STRING,这取决于你认为这个 OCTET STRING 承担的编码类型。这是你的选择,asn1c 不能自动做出这个选择,因为它不能期望特定的编码。

    【讨论】:

    • 谢谢,列夫。可以想象,我不控制 IMS CDR 文件的 ASN.1 定义。我会考虑按照您的建议进行操作,因为我确实相信我们可以依靠获得 IA5 数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2023-04-11
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多