日本語処理(文字コード)関係のエラーの対処法について
・環境は、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=$i …
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行目で引っかかってている、ということでしょうか?
だとしても、対処法が分かりません。
日本語処理で問題が発生しているようなのですが…。
No.3
- 回答日時:
$content = decode('utf8', $content); # コンテンツのコード変換
これ、いらんかも
No.1
- 回答日時:
decode しようとしている文字列は, 本当に UTF-8 ですか?
ご回答ありがとうございます。
他サイトから情報を取得する際の文字コードについては、下記の設定をしなければならない気がするのですが。
1.Perlで作ったプログラム自体の文字コード。これは保存時の文字コードを選択で設定できます。
2.Perlプログラム内でブラウザ表示させる場合の文字コード。これは、プログラム内で設定できます。
3.取得する対象のサイトで使われている文字コード。
4.ブラウザで設定されている文字コード。閲覧者が設定するので、マチマチです。
3については、どのサイトも明示的に設定されているものなのでしょうか? Perlプログラム内で、どんな文字コードを使用していたとしても、汎用性のあるプログラムを作成することはできませんか?
4について。Perlプログラム内で出力時の文字コードを設定してしまった場合、ブラウザ上での設定とで衝突が起こりませんか? ブラウザの文字コードをPerlプログラムから強制的に変更できたとして、閲覧者が他のサイトを見に行った場合に、文字化けするようなことはないでしょうか?
このあたりが、いまいちよく分からず適切な対処法が分からないでいます。
ご回答の手段とは、プログラム内で変数から値を取り出すような方法で、確認すればいいということでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- WordPress(ワードプレス) ワードプレスのエラー ログイン画面が表示できない 1 2022/11/05 09:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CGIでメール送信で件名文字化け
-
perl でエラー:Wide character...
-
perlで読み込むテキストの文字...
-
【LaTeX】pBibTeXでのエラーの...
-
【文字コード】外見上は全く同...
-
Perlで、文字の出現回数を調べ...
-
MFCのコントロールにUTF-8の文...
-
substrでutf8の日本語文字を先...
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
「何とかで始まり、何とかで終...
-
各項目がダブルクォーテーショ...
-
csvデータのダブルクォーテーシ...
-
正規表現で、特定の文字列を含...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 置換文字がみつからない時
-
WORDで改ページすると時々グレ...
-
マクロを使ってフォルダー内に...
-
VBAの文字列の中に”(全角のダブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl でエラー:Wide character...
-
【LaTeX】pBibTeXでのエラーの...
-
MFCのコントロールにUTF-8の文...
-
jcode.plのかわり
-
【文字コード】外見上は全く同...
-
デバッグ情報が文字化けする
-
UTF-16からUTF-8への変換
-
機種依存文字(株)を入力すると\...
-
今更ながらdbmopenでutf8環境に...
-
sedやperlでの2バイト文字を含...
-
perlについての質問
-
CGIでメール送信で件名文字化け
-
Java+MySQLで特殊文字(丸数字(...
-
Jcode.pmでconvertできない
-
WWW::Mechanizeの文字コードに...
-
HTML::Templateでutf-8のテンプ...
-
Perlで、文字の出現回数を調べ...
-
カタカナ一覧表が知りたい
-
WindowsでUTF-8のPerlスクリプ...
-
UTF-8 フラグ?で文字化けしま...
おすすめ情報