XML::SimpleでXMLをパースした際に、文字化けを起こす件について
原因はXML::SimpleのXMLinを使った時に、utf-8のデータが文字化けしてしまう様子。
ParserがどうもXML::SAXを使っていたようで、それが原因で化ける。
よくわからないが。
2007-05-03 - 結城浩のはてな日記
http://d.hatena.ne.jp/hyuki/20070503#utf8flag
によると
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
を実行してやればParserがXML::Parserに固定されるので化けなくなるとのこと。
しかしMacOSXではXML::Parserがデフォルトで入っていなかったのでインストールの必要がある。
cpanでインストールしようとするとさらにexpatというのをインストールしておく必要があるらしい。
そこで下記の手順にしたがって両方インストール。
Mac OS X に XML::Parser と expat をインストール - Daio Today
http://psst.jp/syn/archives/000182.html
============================================================
■まず、libexpatのインストールhttp://sourceforge.net/projects/expat/ から expat-1.95.8.tar.gz をダウンロード。
解凍して、ディレクトリに入る。makeはデフォルト状態で特に問題なし。
./configure
make
sudo make install
make check
make distclean次のファイルがインストールされる。
/usr/local/lib/libexpat.0.5.0.dylib
/usr/local/lib/libexpat.a
/usr/local/lib/libexpat.la
/usr/local/include/expat.h
/usr/local/include/expat_external.h■ XML::Parser と XML::RSS のインストール
expat さえ入っていれば、XML::Parser は難なく入る。
そして、 XML::Parser が入っていれば、 XML::RSS も難なく入る。
XML::RSS のインストール時にテストでコケる場合は言語環境を外す。cpan XML::Parser
export LANG=C
cpan XML::RSS
============================================================
両方インストールしてDumpして内容を確認してみると
文字化けの問題が解決していた!
thx!