Re: [問題] 請問 Net::SNMP 處理中文字串問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章