• ベストアンサー

自宅Webサーバにアクセスすると必ず文字化けする

アクセスありがとうございます。 Red Hat Linux8.0で自宅Webサーバを構築したのですがインターネットエクスプローラでアクセスすると必ず文字化けしてしまいます。 インターネットエクスプローラの「表示」メニューの「エンコード」が「西ヨーロッパ言語(ISO)」になってしまうのです。 これを「日本語(自動選択)」などにすれば文字化けが直るのですが他のページにジャンプすると再び文字化けが発生してしまうという始末です。 これでは快適なウェブブラウジングなんて、できませんよね。 htmlファイルをアップロードするときにEUCコードにしたりJISコードにしたり試してみたのですが文字化けは直りませんでした。 また「apache」の「httpd.conf」ファイルをいじってみたのですが、まだ文字化けは直りません。 設定ファイルは次のように書き換えたりしました。 AddDefaultCharset ISO-8859-1の文字列を #AddDefaultCharset ISO-8859-1とコメントアウトしたり AddDefaultCharset shift_jisとしたり AddDefaultCharset EUC-JPとしたり AddDefaultCharset noneとしたり AddDefaultCharset ISO-2022-JPとしたり またLanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv twの項目で「ja」を先頭に配置して LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv twとしたりしてみましたが文字化けは直りませんでした。 また「httpd.conf」を変更後は1回1回、/etc/rc.d/init.d/httpd reloadコマンドを実行してインターネットエクスプローラも1回1回、起動し直して試したのですが、やはり文字化けは直りませんでした。 なぜでしょう?? 何か忘れていますか。 また他にどのような設定をすれば文字化けを解消できると思われますか。 何か心当たりのある方、どうか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

これって、まさに私が http://oshiete1.goo.ne.jp/kotaeru.php3?q=439489 で予告していたことですよね。これではまるのが目に見えていたから 言ったのに、耳を貸さないんだから… 文字化けの原因は、HTTPのヘッダに適切でないcharsetが指定 されていることによりますので、設定を変更したら、ヘッダを取得 できるブラウザで確認してみてください。 w3m の場合、 w3m -dump_head http://hogehoge.domain/ という感じでできます。 手元の RedHat8.0では > harset ISO-8859-1の文字列を > AddDefaultCharset ISO-2022-JPとしたり とするだけで、文字化けは無くなっていますが、他の人の事例で Shift-JISだとこれでもうまくいかないのを目撃しています。 # 理由はさっぱり理解できていません。 HTMLをISO-2022-JPに変換して上記設定を行なうとどうなりますか? うまく行くようなら、この際標準的なISO-2022-JPに統一することをお 勧めします。

zyousuke
質問者

お礼

ご回答ありがとうございます。 そうなんです、まさにastronaut様あなた予想通りの結果になってしまったのです。 しかし、あの日は買ったばかりのLinaxサーバ導入書とインストールディスクが目の前にあったのです。 そのような条件下では私の好奇心を抑制することなど出来るはずがありません。 astronaut様あなたの警告など全く無視しインストールしちゃいました。 「別に止めませんが」というお言葉も頂いたことですし。 と前置きはこのくらいにして結果報告に移りたいと思います。 実は昨晩、質問後もいろいろと試行錯誤した結果、なんと文字化けが発生しなくなりました。 問題解決の決め手となった操作は、はっきり言うと分かりません(汗)。 いろいろ試しているうちに、ふと気が付いたら解決していた、といった感じです。 でも、やったことといえば「httpd.conf」ファイルの AddDefaultCharset ISO-8859-1の文字列を #AddDefaultCharset ISO-8859-1とコメントアウトして LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv twの項目で「ja」を先頭に配置して LanguagePriority ja en da nl et fr de el it kr no pl pt pt-br ltz ca es sv twとしただけです。 あとインターネットエクスプローラの「一時ファイル」「履歴」「オートコンプリート」を削除したりもしました。 結構↑これが影響しているのかもしれません。 そして現在は何の問題もなく快適にブラウジング出来るようになりました。 「w3m」については興味がありますがWindows上で動作させるには何か面倒な作業が必要なようなので今回は見送ることにします(なんてったって解決しちゃいましたし)。 「ISO-2022-JP」について 僕の使っているFTPクライアントソフトは文字コードを「EUC」と「JIS」に変換できるのですが、どうも「ISO-2022-JP」には未対応のようです。 そういうことですので「HTMLをISO-2022-JPに変換」という作業も今回は見送ることにします(なんてったって解決しちゃいましたし)。 また「理由はさっぱり理解できていません。」とのことですが、そんなことではこの僕に理解できる訳がないですね。 いろんなホームページで「ここをこうしたら直った」というような記事をたくさん目にして僕も真似してみたのですが直らず ひょっとして環境に依存しているのかと深い絶望に陥ったりもしていました。 しかし原因は不明ですが問題は解決してしまいましたので、ひとまず結果オーライということにしておきます。 でも「Apache2.0」は一部では、あまり評判が良くないようで私も、また忘れた頃に突然、文字化けが発生するのではないかとドキドキしています。

その他の回答 (3)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.4

w3mはRedHat8.0に付属してます。(3枚目のCDに入ってます) telnetでログインしてhttp://localhost/にアクセスするだけです。なにも面倒じゃありません。 あと、JIS = ISO-2022-JP です。 本質はわからなくても解決さえすれば良いようですから、どうでもいいことですが。

zyousuke
質問者

お礼

ご返信ありがとうございます。 「w3m」というのはWebブラウザですよね。 サーバ機にWebブラウザをインストールするということでしょうか。 そしてその後「w3m -dump_head http://hogehoge.domain/」というコマンドを実行すればいいのでしょうか。 あと引数のhttp://以下は丸写しでいいのですか。 それとも「127.0.0.1」などのように別のアドレスに置き換えるのですか。 あとJISがISO-2022-JPだったのですか。 これがWindows標準の文字コードですか。 僕は今までシフトJISというものが標準の文字コードだと思っていました。 ということは僕が作成したhtmlファイルは全てISO-2022-JPコードということになるので変換する手間が省けました。 先ほど僕が発言したFTPクライアントについて言い直しますと、こういうことでしょうか。 「僕が使っているFTPクライアントは文字コードを「EUC」と「JIS」に変換可能だが「シフトJIS」には変換できない。」 最後に「本質はわからなくても解決さえすれば良いようですから」というあなたの発言について この発言は僕の心にグサッと刺さりましたよ。 ヒドイですよ。 それでは、まるで僕が努力も何もしないナマケモノのような言いようではないですか。 まー否定は出来ませんけどね(笑)。 でも本当は本質も知りたいんです。 でも、そのために多大な時間を浪費するのであれば、とりあえず問題は解決したのだから他のことに時間を費やしたいと普通の人は考えますよ。 少なくとも僕はそう考えます。 って、なんか反抗文みたいになっちゃってスミマセン。 でもこれは感謝の気持ちを込めた、お礼文です。 僕は回答してくださった方に感謝の気持ちを忘れない!! お礼をするときは回答者に喜んでもらえるように、いつも長時間かけて、お礼の言葉を考えてます。 だから、またご回答くださいね。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

文字コード設定機能をオフにしてみたらどうなります? AddDefaultCharset Off これで文字コードの判定はブラウザ側の機能で行われるはずですが。

zyousuke
質問者

お礼

ご返信ありがとうございます。 早速お教えいただいた方法を確かめてみました。 結果は、といいますと残念ながらダメでした。 AddDefaultCharset Offは 頭に#を付けてコメントアウトするのと同じような設定ですね。 他にも似たような設定のしかたが、たくさんあるのでしょうか。 うーん分からない!! しかしバグ報告が無いということは、やはり僕の設定がいけないのですよね。 アーキテクチャの問題ってことは無いと思いますが、もーー最近トラブルばっかりでもうやだーー! 早くサーバを安定させてホームページ作りにはげみたいよー。 もうLinuxなんて嫌いだーー!! おっと、取り乱してしまいました。 xjd様、他にも何か解決策がひらめきましたら、どうかお知らせください。 よろしくお願いします。 (つーか最近お世話になりっぱなしですね・・・スミマセン)

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

直接的な解決ではありませんが。htmlファイルに <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> のように書き込んで指定してはどうでしょうか?

zyousuke
質問者

お礼

ご回答ありがとうございます。 おおっ、日本語が表示されました。 これはすごいですね。 しかし今まで作成した全てのhtmlファイルに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">の文字列を追加するのは、かなり骨の折れる作業ですね。 と、そんなことよりも僕が気に病んでいるのはhtmlファイル1つにつき71バイト分のデータ容量が加算されてしまうことです。 え、何をケチ臭いことをとお思いでしょうか。 ケチというよりも、そうです僕は日本人の4割を占める几帳面なA型なのです(笑)。 そういうわけですので、お教えいただいた方法は最後の手段として使わせていただきます。 しかし、このあと不思議な現象が起こりました。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">の文字列を削除したあとに再びウェブにアクセスしたのですが、なんと文字化けが発生しないのです。 それどころかハイパーリンクからジャンプしたページも次から次へと正常な日本語が表示されていくのです。 その後ブラウザをいったん終了させて再起動させても文字化けせず コンピュータを再起動して再度アクセスしても文字化けは発生せず 別のホストからアクセスしても文字化けが発生しなくなりました。 と喜んでいたのですが、また文字化けするようになってしまいました。 apacheが、なんとも挙動不審な動作をしています。 ちょっと何がきっかけで、また文字化けが発生し出したのかは曖昧で分からないのですが、ブラウザのキャッシュのようなものが影響しているのかもしれません。 結果的に今現在は文字化けしています(涙)。

関連するQ&A

  • Apachenの文字化けについて

    Solaris10にapche2.2.14をインストールし、テストとしてHTMLに<meta http-equiv="content-type" content="text/html; charset=utf-8">を記述して確認すると文字化けしてしまいます。 IE or firefoxのエンコードを「日本語(EUC-JP)」に変更すると直るのですが。 色々、Googleで調べて設定を変えてみたのですが、結局うまくいきません。勉強不足で申し訳ありませんが、教えていただけたら幸いです。 よろしくお願いします。 httpd.conf #Language settings Include conf/extra/httpd-languages.conf httpd-languages.conf AddDefaultCharset EUC-JP or AddDefaultCharset Off←この設定が、無くなったような感じがいます。 LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw

  • apache2.2 文字化け

    apche2.2.9をインストールし、簡単なHTMLを用意しアクセスしようとしたところ、文字化けしてしまいました。IEのエンコードを「日本語(EUC)」に変更すると、直るのですが、どこを修正したらよいでしょうか。宜しくお願いいたします。 各種設定は以下の通りとなります。 ■httpd-languages.conf DefaultLanguage ja LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw ■httpd.conf #Language settings Include conf/extra/httpd-languages.conf ■test1.html <html> <head> <title>タイトル</title> </head> テストページ </html>

  • apach 文字化け httpd.conf

    apach 2.0.49をインストールし、使用してますが、HTMLを出力すると文字化けします 日本語が文字化けします。 AddDefaultCharset iso-8859-1 も解除し、<html>のところを<html lang="ja">も変更し、 Apacheも Restartで再起動しても、駄目でした。 httpd.confの設定を以前、変更して文字化けが無くなった経験があるんですが、思い出せません。 誰か御存知の方がいらっしゃったら、教えてください。宜しくお願いいたします。

  • PHP Install後におけるhttpd.confの書換が完了できない

    ローカルマシンのWin2000上にPHPとMySQLを動作させようとしていますが、Apache_2.0.45のインストール後にPHP-4.3.2をインストールしてからの、Apacheのソフトウェア内の「httpd.conf」ファイルの書換が何度確認してもうまくいきません。 [1]503行目付近 ScriptAlias /cgi-bin/ "D:/Softwares/Apache_2.0.45/Apache2/cgi-bin/" の行の後に ScriptAlias /php/ "D:/Softwares/Apache_2.0.45/Apache2/htdocs/" と続けて入れた(もちろんパスは合致)。 書籍には「ScriptAlias /php/ "C:/PHP/"」と入れるようにあったが、それではうまくいかなかったので、上記のようにした。 [2]755行目付近 AddType image/x-icon .ico とあるところに続けて、 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps と入れた(書籍通り) [3]797行目付近 # Format: Action handler-name /cgi-script/location # とあるところの次に Action application/x-httpd-php /php/php.exe と入れた(書籍通り)。ちなみに、 Action application/x-httpd-php /PHP-4.3.2/php.exe ともやってみたがダメだった。 [4]314行目付近(任意とあった) DirectoryIndex index.html index.html.var とある次に続けて、 DirectoryIndex index.htm DirectoryIndex index.php と入れた(書籍通り)。 [5]679行目付近 #LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw とあるところを日本語を先頭にということで、jaを先頭に差し替えた(書籍通り)。 LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw [6]695行目付近 AddDefaultCharset ISO-8859-1 のところを以下にした(書籍通り)。 #AddDefaultCharset ISO-8859-1 AddDefaultCharset none 長くなって恐縮ですが、ご教授願えたら嬉しいです。宜しくお願いします。

  • サーバの字が文字化けします。

    redhat9+apache2でサーバを構築したのですが、 サーバ上でのファイル名が文字化けしてしまいます。 (apacheはソースからインストールしました) ツールバーの表示からエンコードを変更すれば 正しく表示されるのですが、 できれば最初から、文字化けしないようにしたいです。 何度か調べて、httpd.cnfの #AddDefaultCharset~や LangagePriority、 また、php.iniの mbstringなどを訂正したのですが、 変わらず西ヨーロッパ言語のままです。 わかる方いらっしゃいましたら よろしくお願いします。

  • Apache2.2での文字化けが直せません

    Apache2.2.15をインストールし、「独習PHP」に従って設定をしたのですが、日本語が文字化けします。 httpd.confで変更したのは以下の部分です。 LoadModule php5_module "c:/php/php5apache2_2.dll" Addtype application/x-httpd-php .php (AddDefaultCharsetは、調べてみた所2.2系から使われてないらしいので、追加していません) php.iniの設定も間違いなく行いました。 また、<head>内に<meta http-equiv="Content-Type" content="text/html; charset=euc">などと埋め込んだりしてもだめでした。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • ホームページの文字化け

    お世話になっています。 検索しましたが、引っかからなかったので投稿します。よろしくお願いいたします。 環境は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" 長文になりましたが、上記より改善方法がわかる方御教授お願いいたします。

  • Perlのインストールについて

    初歩の質問で申し訳ないのですが、Perlのインストールがうまくいかないのでお助け願います。 まずapache_2.0.59-win32-x86-no_sslをダウンロードし テストページ http://localhost/ にアクセスしたところきちんとテストページが表示されました。 次にActivePerl-5.8.8.819-MSWin32-x86-267479をダウンロードしhttpdファイルの Options Indexes FollowSymLinks → Options FollowSymLinks ExecCGI # DefaultLanguage nl → DefaultLanguage ja LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW → LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW #AddHandler cgi-script .cgi → AddHandler cgi-script.cgi .pl と変更し上書き保存したあとapache2のRestarをクリック。 次にC:Apache2\htdocsに 『 #!C:/Perl/bin/perl print "Content-type: text/html\n\n"; print "Arehiro"; 』 という内容のテキストファイルで作成しindex.cgiと名をつけて保存しました。 そしてそのあと『http://localhost/index.cgi』にアクセスしたところテストページは表示されず、HTTP 404 - ファイル未検出のエラーとなってしまいます。 原因としては何が考えられるでしょうか?

  • Fedora Core2での文字化け

    ターミナルでの文字化けを検索すると /etc/sysconfig/i18nの変更がヒットします。 LANG="ja_JP.euc_JP" SUPPORTED="ja_JP.euc_JP:ja_JP:ja" SYSFONT="latarcyrheb-sun16" これでいくと、リモートからputty.exeなどでtelnetした 際は文字化けしませんが、サーバーのターミナル上では 文字化けします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=966286 にはターミナルの設定をEUCにしてくださいとありますが、 サーバのターミナルの文字コードはどこで変更するので しょうか? よろしくお願いします。

  • texでの文字化け

    texで論文作成を行っていますが、文字化けしてしまいます。 1.EUC-JPでのファイルを開く際には、文字コードをEUC-JPにしただけでは文字化けしてしまうのですが、ほかに何を設定すればよいですか? 2.EUC-JPでは文字化けしてしまうため、現在utf-8で論文の作成をしています。 ほとんど文字化けはないのですが、ヘッダーの第何章 という部分だけ文字化けしています。 どこを変更すれば文字化けはなくなりますか? \documentclass[a4p, 12pt]{jreport} \usepackage{shutitlepage} \input{style.tex} \usepackage{bm, amssymb} \usepackage[dvipdfm]{graphicx} \usepackage{setspace} %\doublespacing \title{ } \author{ } \date{ } \pagestyle{headings} \begin{document} \maketitle % \tableofcontents \listoffigures %\listoftables