« install_driver(mysql) failed | トップページ | やっちまった »

2006年5月27日 (土)

LWP::UserAgentがとってきたのはutf8ではなかった

前回に続いてGoogle Maps APIをいじってて分かったこと。

データベースに座標データとコメントをいれておいて、それを取り出しGoogle Mapsにマークをつけるプログラムを書いてました。それで今度はWebページからデータを入力してデータベースに格納することをしていました。

最初は経度、緯度、コメントをそのまま入力する形で作成。これは@ITの記事を参考にしながらやったら、意外と簡単にできました。

それで、次は経度・緯度をそのまま数値で入力させるのは面倒なので、住所をいれたら勝手に経度・緯度を調べる仕組みに変更します。Google Mapsをいじり始めたあたりから変換してくれるサービスを探していてGeocodingというよさそうなサービスを見つけていました。

というわけで、そのサービスを使うために通信する方法を調べて、経度・緯度を取得するテストプログラムを作りました。返ってくるデータはXML形式なので欲しいところだけ抽出するように変更します。XML::DOM::Parserモジュールなどを使用したのですが、expatを入れないと上手くインストールできないことに気づかずしばらく悩みました。

それから前のCGIプログラムをコピーし、それに切り貼りしました。そうしたら、コメントが文字化け?する事態が発生。Webページに表示させてみたりしたんですが、utf8で表示させると正しく入力した通りにでるので問題ありませんでした。

問題だったのは経度・緯度がutf8になってなかった事でした。正確にはどういう状態かよく分からないのですが、utf8フラグというものがついていないせいだと思います。

経度・緯度もutf8に変換するようにしてみたら、正しく動作するようになりました。まぁ、まだまだ色々問題あるのでもう少しいじってみたいと思います。

|

« install_driver(mysql) failed | トップページ | やっちまった »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/126478/10263309

この記事へのトラックバック一覧です: LWP::UserAgentがとってきたのはutf8ではなかった:

« install_driver(mysql) failed | トップページ | やっちまった »