Re: [問題] 請問 Net::SNMP 處理中文字串問題

看板Perl作者 (ing)時間18年前 (2006/10/20 22:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《iFEELing (ing)》之銘言: : 您好,在下利用 Net::SNMP 模組向所管設備做了 gettable 的要求, : 傳回一個 hash array , 然後 print 出來 : 但是 hash array 之中的英文字串可以正常顯示, : 中文字串卻變成一串十六進位數字.... : 1.3.6.1.2.1.25.6.3.1.2.84 : 84 : LevelOne Projector Server Player 1.9.4 : 1.3.6.1.2.1.25.6.3.1.2.72 : 72 : : 0x57696e646f777320585020a677a5fea9caa7f3b77320284b4239313433383829 : 1.3.6.1.2.1.25.6.3.1.2.55 : 55 : : 0x57696e646f777320585020a677a5fea9caa7f3b77320284b4239303131393029 : 試著用過 pack("c",hex($str)) 但是亦不能正確顯示。 : 想請教該如何把它變回中文字碼?? : 感謝~ 好吧。 我又來自問自答了 XD 依據 Joe Smith <joe@inwap.com> 在 comp.lang.perl.misc 2005年9月30日(星期五) 下午6時57分 POST的 文章說 $value=pack "H*",$value; 這樣子就可以把它轉回去。 至於原因,剛剛在亂翻 Google Group 時好像有看到, 似乎是說, Perl 不曉得這東西是什麼格式的時候, 就會保留成 Hex-String ??? 然後用 pack 把它包成 BER 格式,果然我原本的編碼 (big5) 就跑出來了 XD 然後再用 Encode 轉成 UTF-8 就搞定啦 哇哈哈哈哈哈..... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.22.18.89
文章代碼(AID): #15EDp1kG (Perl)
文章代碼(AID): #15EDp1kG (Perl)