- ベストアンサー
日本語処理(文字コード)関係のエラーの対処法
- 日本語処理(文字コード)関係のエラーの対処法について
- XAMPPを使用している場合、日本語処理でエラーが発生することがあります。エラーメッセージ「Cannot decode string with wide characters」が表示される場合、Encode.pmの174行目で問題が発生している可能性があります。対処法は不明です。
- 日本語処理のエラーに関する情報が外務省海外安全ホームページで提供されています。危険情報の有無を確認するために、URLを読み込んでコンテンツを解析する必要があります。ただし、コード変換やコメントの削除などの処理が必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Perl がどうとかではなく, 「行儀のいいサイト」なら文字コードをユーザーエージェントになんらかの方法で教えています. だから 3 は「読み込んだ情報からなんとかする」 (普通は meta タグの情報を解析する?) かレスポンスヘッダを見る, 4 についてもレスポンスヘッダで文字コードを明示すれば OK かと.
その他の回答 (2)
- _--_1l1_1_
- ベストアンサー率67% (102/152)
$content = decode('utf8', $content); # コンテンツのコード変換 これ、いらんかも
お礼
ありがとうございます。参考になりました。
- Tacosan
- ベストアンサー率23% (3656/15482)
decode しようとしている文字列は, 本当に UTF-8 ですか?
お礼
ご回答ありがとうございます。 他サイトから情報を取得する際の文字コードについては、下記の設定をしなければならない気がするのですが。 1.Perlで作ったプログラム自体の文字コード。これは保存時の文字コードを選択で設定できます。 2.Perlプログラム内でブラウザ表示させる場合の文字コード。これは、プログラム内で設定できます。 3.取得する対象のサイトで使われている文字コード。 4.ブラウザで設定されている文字コード。閲覧者が設定するので、マチマチです。 3については、どのサイトも明示的に設定されているものなのでしょうか? Perlプログラム内で、どんな文字コードを使用していたとしても、汎用性のあるプログラムを作成することはできませんか? 4について。Perlプログラム内で出力時の文字コードを設定してしまった場合、ブラウザ上での設定とで衝突が起こりませんか? ブラウザの文字コードをPerlプログラムから強制的に変更できたとして、閲覧者が他のサイトを見に行った場合に、文字化けするようなことはないでしょうか? このあたりが、いまいちよく分からず適切な対処法が分からないでいます。 ご回答の手段とは、プログラム内で変数から値を取り出すような方法で、確認すればいいということでしょうか?
お礼
確かに、文字コードの指定を明示的に行っているサイトがありますね。 ありがとうございました。1歩前進しました。