2012-08-27 45 views
0

我運行免費的在線編譯器(在http://lionet.info/asn1c/asn1c.cgi)併爲IMSRecord(電信CDR)創建源文件。解碼asn.1編譯器輸出爲字符串

它內置好了,但是當我運行生成的C可執行文件,它打印字符串爲十六進制字符,如下所示: SIP的方法:49 4E 56 49 54 45

我怎樣才能得到它的打印作爲

SIP的方法:邀請

我試過各種命令行選項,但不能讓它改變。

這是否可能與我當時可能不瞭解的在線編譯器選項之一有關?

感謝,

米奇

回答

0

八位位組串型不應該是可印刷的。因此,asn1c打印出這串字節的十六進制轉儲。如果你想要一個可讀的輸出,我建議用IA5String或UTF8String這樣的東西替換OCTET STRING,這取決於你認爲這個OCTET STRING所承載的編碼類型。這是你的選擇,asn1c不能自動做出這個選擇,因爲它不能指望一個特定的編碼。

+0

謝謝,列夫。正如你所想象的,我不能控制IMS CDR文件的ASN.1定義。我會按照你的建議去做,因爲我相信我們可以依靠獲得IA5數據。 – mitchmcc