日本語処理(文字コード)関係のエラーの対処法について
日本語処理(文字コード)関係のエラーの対処法について
・環境は、XAMPPを使用しています。
perl、phpの簡単なプログラム(hello worldのようなもの)を実行して動きました。
・asperlを文法チェックに使っています
-実行したいサンプルプログラム-
原文(「SPIDERING HACKS中のプログラム」)は下記のutf8がshiftjisです。が、utf8に変更しました
#!/xampp/perl/bin/perl
use strict;
use LWP::Simple;
use Encode;
use encoding 'utf8'; # 使用しているプラットフォームにあわせてください。
binmode(STDERR, ':raw :encoding(utf8)'); # 同上
my $id = shift @ARGV || '074'; # 引数の取得(デフォルトはニュージーランド)
# 外務省海外安全ホームページ
my $url = "http://www.anzen.mofa.go.jp/info/info4.asp?id=$id";
my $content = get($url);
die "$url を読み込めませんでした。" unless defined $content;
# $contentを読み込んで危険情報を確認する。
$content = decode('utf8', $content); # コンテンツのコード変換
$content =~ s/<!--(.*?)-->//gs; # HTML内のコメント削除
$content =~ / SELECTED>▼([^<]+)</; # 国名の取得
print "$1\n";
if ($content =~ /現在、危険情報は出ておりませんが、/) {
print " 危険情報は出ていません。\n";
} else { print " 危険情報が出ています!\n"; };
print " 詳細はhttp://www.anzen.mofa.go.jp/を見てください。\n";
ローカル環境で、asperlを使用して文法チェックを行うと、エラーはありませんでした。
ところが、ローカル環境で実行すると、
Cannot decode string with wide characters at C:/xampp/perl/lib/Encode.pm line 174.
というエラーが出ます。
これは、Encode.pm の 174行目で引っかかってている、ということでしょうか?
だとしても、対処法が分かりません。
日本語処理で問題が発生しているようなのですが…。
お礼
ありがとうございます。 >反国家、ってなんですか? >アナーキーのことでしょうか。 >それとも、反日日本人のような人の >ことでしょうか。 アナーキーの事です。