XML::Simpleで文字化け??
MacOSX上でLastFMのランキングをつぶやくbotを作っています。
(よかったらフォローしてみてください。新しいアーティストの発見に!?)
- [twitter:@lastfmrankjp]
- 週一回、日本でよく聴かれたアーティストベスト50をつぶやくbot。
- [twitter:@lastfmrankus]
- [twitter:@lastfmrankuk]
- 週一回、イギリスでよく聴かれたアーティストベスト50をつぶやくbot。
- とりあえず出来たのでCentOSに持っていってcronで動作させようと思い、アップロードしてターミナルから実行してみると、、文字化け。。
- 原因は調査中ですが、どうやらXML::SimpleのXMLin()に渡して返ってきたときに文字化けしているようです。
- XMLin()関数内で"flagged UTF8'"に変換されて戻ってきているのでその時??
- ググってみるとXML::Simpleの文字化けに関する情報は多く見つかったのですが、解決方法が見つからず。。
- なのでとりあえず、perldocやソースから調査してみようかと思います。
- (今はランキングの更新タイミングを調査中ということもあって、macから手動で投稿させているという情けない状態。。)
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.010; use Encode; use LWP::UserAgent; use XML::Simple; binmode STDOUT, ':utf8'; my $ua = LWP::UserAgent->new; my $uri = 'http://ws.audioscrobbler.com/2.0/?method=geo.gettopartists&country=japan&api_key=b25b959554ed76058ac220b7b2e0a026'; my $res = $ua->get($uri); $res->is_success or die 'error'; my $result = XMLin($res->decoded_content); for my $name (keys %{$result->{topartists}->{artist}}) { say $name; }