電子書籍の厳選無料作品が豊富!

はじめて質問です。失礼があったらご容赦ください。
じゃらんAPIのRESTで取得したXMLデータを、単にテキストで
書き出したいのですが、どうしても文字化けしてしまいます。
いろいろ試したのですがどうしても駄目でした。
以下がそのスクリプトです。
どなたかご教示いただければ幸いです。
(作業環境:Windows XP / Perl5.8)

use encoding 'utf8';
use Encode;
use LWP::Simple;

my $key='xxxxxxxxx';

my $url="http://jws.jalan.net/APILite/HotelSearch/V1/?key …

my $data=get($url) or die;

open W,'>:utf8','MyNouhin.txt' or die;
print W $data;
close W;

「じゃらんのAPIでRESTで取得したら文」の質問画像

A 回答 (1件)

decodeしていないのが原因だと思います。


データ読み込みの際、以下のようにdecodeすればいいと思います。

my $data=decode_utf8( get($url) ) or die;

あと、use encoding 'utf8'は副作用が多いので、use utf8のほうをお薦めします。
一例として、以下のようにすれば、標準入出力やファイルへの入出力がutf8となります。

# -- use encoding 'utf8' に変わる部分 ---------
use utf8;
use open IO => ":encoding(utf8)";
use open ":std";
# ---------------------------------------------

use Encode;
use LWP::Simple;

my $key='xxxxxxxxx';

my $url="http://~~";

my $data=decode_utf8( get($url) ) or die;

open W,'>','MyNouhin.txt' or die;
print W $data;
close W;
    • good
    • 0
この回答へのお礼

ありがとうございます!
希望通りの動作を確認できました。
本当に助かりました。
お会いしてお礼申し上げたいぐらいです。

お礼日時:2009/10/15 08:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!