Data::Dumper;でダンプ後表示した文字列\x{30fc}...
お世話になります。
下記のスクリプトを使ってrssファイル内をuse Data::Dumper;でダンプして表示してみたのですが、rssファイルがutf8で記述されているせいか
表示時に日本語の所が\x{30fc}のような文字列になってしまいます。
これをshiftjisで表示させたいのですが、試行錯誤してもうまくいきません。
どなたかご教授いただけませんでしょうか。
#!/usr/bin/perl
BEGIN{
$| = 1;
print "Content-type: text/html\n\n";
open(STDERR, ">&STDOUT");
}
use XML::RSS;
use Data::Dumper;
my $rss = new XML::RSS;
#表示形式の違いで1と2がある。
$Data::Dumper::Indent = 1;
use open IN => ":utf8"; # 入力をUTF8とする
use open OUT => ":shiftjis";
#use open ":std";
#use Encode;
#use encoding 'shiftjis', STDIN=>'utf8', STDOUT=>'sjis';
#binmode STDOUT, ":encoding(utf-8)";
#binmode STDOUT, ":encoding(shiftjis)";
#binmode STDOUT, ":encoding(euc-jp)";
#use open ":encoding(shiftjis)";
# rssをセット。
open my $fh, '< ./test.rss';
my $text = join undef, <$fh>;
close $fh;
# rssをパース
$rss->parse($text);
# ひとまず中見を知る為にダンプしてみる
print "Content-type:text/html;charset=Shift_JIS\n\n";
print "<html><head>\n";
print "<title></title></head>\n";
print "<body>\n";
print Data::Dumper->Dump([$rss]);
お礼
CP932 としたら正常に~が出力されました!! 感激! ありがとうございました!!