- ベストアンサー
ホームページの文字化け
お世話になっています。 検索しましたが、引っかからなかったので投稿します。よろしくお願いいたします。 環境はRedhat9.0、apache2.054を使用しています。 自宅でホームページを運用しようと考えているのですが、作成したindex.htmlを開くと文字化けが発生します。以前は問題なかったのですが、1ヶ月ほど前にcgiを導入してからこのような現象になったと思います。 ページのデフォルトエンコードが西ヨーロッパ言語(ISO)になっている様子で、エンコードを変更すれば文字化けは直るのですがページの更新をかけると現象が再現します。 自分で調べては設定を見ましたが、現象が改善しませんので御教授お願いいたします。 現在の設定環境は以下の通りになります。 /var/www/html/index.htmlに下記追加 <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> httpd.confを編集 #AddCharset ISO-8859-1 .iso8859-1 .latin1 #AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen #AddCharset ISO-8859-3 .iso8859-3 .latin3 #AddCharset ISO-8859-4 .iso8859-4 .latin4 #AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru #AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb #AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk #AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb #AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk 上記をコメントアウト AddDefaultCharset off 追加 LanguagePriority ja のjaを先頭に変更 /var/www/.htaccess を追加し、下記記入 AddType "text/html; charset=ISO-2022-JP" html /etc/sysconfig/i18n LANG="ja_JP.eucJP" SUPPORTED="ja_JP.eucJP:ja_JP:ja" SYSFONT="lat0-sun16" SYSFONTACM="8859-15" 長文になりましたが、上記より改善方法がわかる方御教授お願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> AddDefaultCharsetを指定していないのに > デフォルトのエンコードが西ヨーロッパ言語(ISO)に > なるのはなぜなんでしょう。 むぅ、自信はないですが、どこか別のファイルで、デフォルトのcharsetを指定しているように見えますけど…… 状況から、サーバがcharsetを送出しているように見えます。 AddTypeなどが別のファイルにあるとか…… 気になるのはcgiを導入してからというところですね。 cgiを導入したときにした設定で、似たようなところはないでしょうか?
その他の回答 (4)
- Caldron
- ベストアンサー率100% (4/4)
/var/www/.htaccessから > AddType "text/html; charset=ISO-2022-JP" html を削除し、 AddDefaultCharset off としたらどうでしょう? (charsetを指定しないという方法です) shift_jis で書かれたページを iso-2022-jp で表示するように指示しているために化けているような気がします。 日本語が使えるcharsetには iso-2022-jp(いわゆるJIS) shift_jis(シフトJIS) euc-jp(日本語EUC) utf-8(Unicode由来) などが登録されています。 それぞれ違っていて、どれに統一すればいいとかそういうことは私には言えません。 なお、No.3の「回答に対する補足」にある方法では、 実際のファイル内の charset が変わってなければ意味がありません。 AddDefaultCharset や <META http-equiv="Content-Type"> で指定する charset でhtmlファイルの中身を書かなければ、まず化けると思います。
補足
/var/www/.htaccess 自体をリネームして AddDefaultCharset off に設定 <META http-equiv="Content-Type">に shift_jis を指定したのですが現象改善しません。。 AddDefaultCharsetを指定していないのに デフォルトのエンコードが西ヨーロッパ言語(ISO)に なるのはなぜなんでしょう。 なにかサーバー側のキャッシュクリア等が必要になるのですか? 作成したindex.htmlをサーバーにおかずにクライアント端末においてローカル公開すれば問題なく表示され、エンコードもシフトjisで表示されます。 ということはサーバ側の設定になると思うのですが、ほかに修正かける場所というのはありますか??
- entree
- ベストアンサー率55% (405/735)
> AddType "text/html; charset=ISO-2022-JP" html まず、これを追加するのであれば、 AddDefaultCharset ISO-2022-JP とする方がよいでしょう。あと、 > <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> > AddType "text/html; charset=ISO-2022-JP" html これって、キャラクタセットが一致してませんよ。 ついでに言っておくと、CGIやその他の設定項目(AddCharsetのコメント化や/etc/sysconfig/i18nなど) は文字化けとは関係ないでしょう。
補足
AddDefaultCharset ISO-2022-JP <META http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP"> に変更したのですがまだ文字化けが続いている状態です。。 何の文字セットに統一したらいいとかってあるんですか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
index.htmlはSHIFT_JISなんですよね? ISO-2022-JPは、いわゆるJISですよ。 そこらへんの不整合によるのではないでしょうか? 見当違いだったらすみません
補足
上にも書きましたが、 <META http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP"> に変更しましたが、現象は改善しませんでした。 ちなみに[SHIFT_JIS]、ISO-20220JP、X_JISって何が違うんですか? なにかお薦めってありますか? 根本がわかっていなくて申し訳ありません
- mendokusa
- ベストアンサー率13% (359/2726)
apacheの設定の問題でしょう。 少しずつ元に戻していけば分かるんじゃないですか。 .htaccessを外してみるとか AddDefaultCharset を変えてみるとか あとリロードくらいでは反映されない場合があるので 複数の端末で確認してください
補足
すみません初歩的なミスをしていました。 httpd.confの設定を変更した後再起動をかけたのですが、 エラーのため再起動がかかっていませんでした。 エラーを回避し、再起動をかけると文字化けが直りました。 ANo4でDefaultCharsetをoffにしたのがよかったと思います。 ご報告遅くなりましたが、御教授ありがとうございました。