人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CGIスクリプトから出力したHTMLの日本語部分のみが文字化けします。CGIの文字コードはEUCで、HTMLヘッダでは<meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”>と明示しているにも関わらず、文字化けします(文字コードをEUCに手動変更すると改善される)。手動変更せずに文字化けしないようにしたいのですが、何が原因でどう対応すれば良いでしょうか?ちなみにPerl5.8.4、Apache/1.3.33 (Unix)を使用しています。文字化けの症状としては、例えば「初級 / 中級」が「&frac12;&eacute;&micro;&eacute;&iexcl;&iexcl;/&iexcl;&iexcl;&Atilde;&aelig;&micro;&eacute;」のように表示されます。

●質問者: dak
●カテゴリ:コンピュータ
✍キーワード:Apache CGI EUC HTML UNIX
○ 状態 :終了
└ 回答数 : 10/10件

▽最新の回答へ

1 ● nishiyu
●13ポイント

http://www.kent-web.com/pubc/jcode/

文字化けについて

こちらを参考に

Shift-JISとかで試してみましたか?

◎質問者からの返答

一応としても文字化けするようです。


2 ● americanboss
●18ポイント

http://hp.vector.co.jp/authors/VA014833/CGI/header.html

CGI $B%W%m%0%i%`$N2~NI0F(J/$B%X%C%@$N=q$-J}(J

HTMLのヘッダではなく、HTTPのヘッダで文字コードを指定していないからだと思われます。

◎質問者からの返答

実はたった今自力で問題が解決しました(CGI.pmからprint $q->header;としてヘッダを出力していたのを、普通にprint ”Content-type: text/html¥n¥n”;としたら解決)。これは何故でしょうかね。HTTPヘッダでの文字コード指定も勉強になりましたので、ポイント付けたいと思います。以後、解決済みのためポイントは低くなりますが、参考のため参照させて頂きます。ご了承下さい。


3 ● TomCat
●18ポイント

http://www.hatena.ne.jp/1

人力検索はてな

URLはダミーで失礼します。

もしかすると、CGIのソースコードが

EUCで保存されていないのかもしれません。

ローカルではEUCでも、サーバに転送される時に

他の文字コードになってしまう場合もあります。

お使いのFTPクライアントの転送設定なども確認してみてください。

また、サーバによっては、出力させるに当たって特に

print ”Content-type: text/html; charset=EUC-JP¥n¥n”;

などとcharsetまで含めて指定しておかないと、

意図した日本語文字コードに対応してくれない場合があります。

とりあえず、CGIが出力したページのソースを取って、

どこに問題点があるかを検討してみてください。

それが一番の早道です。

◎質問者からの返答

ありがとうございます。


4 ● GEN111
●13ポイント

http://www.apache.jp/

JAPAN APACHE USERS GROUP

apache の httpd.conf の

AddDefaultCharset ISO-8859-1

を↓にするとか

AddDefaultCharset Off

あと CGI からキャラクタセットを指定するなら HTML ではなく

content-type: text/html; charset=EUC-JP

のようにするのが本筋ではないでしょうか。

◎質問者からの返答

ありがとうございます。


5 ● ke_ishi
●13ポイント

http://www.bayashi.net/st/pdmemo/chara2.html

print ”Content-type: text/html;charset=Shift_JIS¥n¥n”;

は出してますでしょうか。

◎質問者からの返答

ありがとうございます。


1-5件表示/10件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ