perlメモ:Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う

ActivePerlで作ったスクリプトでXMLファイル(例えばRSSとか)読み込んでごにょごにしようと思ったんです。
use LWP::Simple;
use XML::Simple
use SOAP::Lite;
とかのライブラリ使ってごにょごにょしてみたら下記のようなエラーが出ました。
どうやらXMLファイルがeucコードだからの様です。
ライブラリ最新にしてみたけどだめっぽいので検索してみると解決策がありました。

Couldn’t open encmap euc-jp.enc:
No such file or directory
at C:/Perl/site/lib/XML/Parser.pm line 187

Perlの小技さんには随分昔からたまにお世話になることがあります。すばらしいPerlの技が満載です。
そういうわけで下記のページをみて、提供されているコンバートスクリプトを使ってeucに対応出来るようにx-euc-jp-unicodeをeuc-jpに変換して利用できる様にします。
実際にやってみたら上記のエラーも出ないようになって普通に使える様になりました。
サクラインターネットのサーバーで動かした時は普通に動いたので(既に対応しているらしい)こんな対策がいるとは知らなかった。
●Perlの小技 – Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う
http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm

(Visited 313 times, 1 visits today)

タグ :