ウェブサイトが文字化けする原因と対処法

このQ&Aのポイント
  • 知り合いのウェブサイトが1週間前から文字化けするようになりました。エンコードをすると一時的に解消されますが、原因解明と対処法を知りたい。
  • ウェブサイトが文字化けする問題があります。ブラウザごとにエンコードの方法が異なり、IEでは「西ヨーロッパ言語」と設定して「日本語-自動選択」にエンコードすると正しく表示されます。Firefoxでは「西欧」と設定して「日本語-Shift-JIS」にエンコードすると正常に表示されます。しかし、この問題はサーバー側の設定にも関係しており、htmlソースのcharsetを変えても解決しません。
  • ウェブサイトが文字化けする問題について相談です。知り合いのウェブサイトが最近文字化けするようになりました。ブラウザでエンコードをすると一時的に解消されますが、原因究明と解決策をお教えいただきたいです。
回答を見る
  • ベストアンサー

ウェブサイトが文字化けします

知り合いのウェブサイトのことで質問させていただきます。 サーバーがアメリカにあり、アップデートはネット上で行うアメリカのウェブ作成ツール(詳しくは聞いてないのですが)というのを利用しているらしいのですが、今までデフォルトで普通に日本語が表示されていたのに、1週間ほど前から文字化けするようになりました。 ブラウザでエンコードをすれば元に戻るのですが、しないと化けています。 ちなみにIEで見たときは「西ヨーロッパ言語」になっていて、「日本語-自動選択」にエンコードして正しく表示されました。 Firefoxでは「西欧」になっていて「日本語-Shift-JIS」にしたら直りました。 htmlソースに <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> と書かれていたので、charsetをShift-JISとISO-2022-JPとに変えてみてもらったのですが、全然なおりません。 どうしたら文字化けしなくなりますか? もちろんこれは私のPCでのみ起こっている現象ではなく、どこで見てもそうなっています。 ご助言お願いいたします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

Shift?JISで直るということは、まずShift_JISで書かれているのでしょうね。 本来、meta情報はサーバーで処理されて、HTTP応答ヘッダにそれが適用されないとならないのですが、多くのHTTPサーバーはその処理をしません。  これは、Firefoxにアドオン Live HTTP Headers( https://addons.mozilla.jp/firefox/details/3829 )を導入すると確認できます。まず、これを行うこと・・想像ではISO-8859-1のままだと思います。  HTTPヘッダが実際のHTMLとは異なっていてもブラウザがそれを処理します。ほとんどの場合こちらです。  で、確認なのですが Shift-JISではなくて、Shift_JISなのですが、それはOKですか?質問では 「charsetをShift-JISとISO-2022-JPとに変えてみてもらったのですが、」     ^^^^^^^となってますが HTTP応答ヘッダの情報と、Shift_JISの確認を!!

izuizumin
質問者

補足

ご回答ありがとうございます。 > Shift-JISではなくて、Shift_JISなのですが、それはOKですか? すみません、書き間違えました。 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">でした。でもダメなんです…。 あと、教えていただいたアドオン導入してみました。ご想像のとおりISO-8859-1でした。 他に何か思い当たる節はございませんか???

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

実際の文字コードは、Frefoxで[自動判別]ではなく、強制的に指定するともっと確実です。  それども文字化けするようでしたら、HTMLのヘッダ部分の情報が必要です。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <title>タイトル</title> ・・・の部分。

izuizumin
質問者

お礼

いろいろとありがとうございます! 先ほど、知り合いの使っているweb上のツールというのを詳しく聞き、自分でも使ってみました。 その結果、やはり実際のHTMLがShift_JISで書かれているのに、文字コードがISO-8859-1と指定されていたことが原因と判明しました。 そのツールは初心者モードと上級者モードがあって、初心者モードでは直接HTMLを細部に渡っては編集できないので、先日私が指示したことが的確にできていなかったようです。 ORUKA1951さんのおかげで、私も知らなかったことをたくさん勉強でき、知らなかったアドインも入手することができました!! まだまだ知らないことがたくさんあるので、またこういう類の質問をすることがあると思います。そのときにもご協力いただけると大変嬉しいです。本当にありがとうございました!

関連するQ&A

  • HPが文字化けしてしまいます

    自分のHPですがトップが文字化けしてしまいます。 ちなみにジオシティーズで作り、 そこで無料で提供してくれるソフト「ジオクリエーター」で作りました。 表示→エンコード→日本語 をクリックすると元に戻ります。 ちなみに調べてみたら <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> というタグが入っていました。 自分はいいのですが、他の方が閲覧した時に うまく見れないのが問題かと思いまして・・・。 どうかよろしくお願いします。

  • 文字化け

     英語が混じった日本語のページを、ドメイン名が.jpで終わらない海外のサイトに置いたのですが、Safari, Netscape, IEのどのブラウザを使っても文字化けしてしまい、強制的にシフトJISにしてやらないと、思ったように表示されません。何が悪いのでしょうか。そのページの先頭には、以下のように書き込んでいますが、何か問題があるのでしょうか? <html> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">

    • ベストアンサー
    • HTML
  • HTMLの文字化け

    自分で立ち上げたサーバへWindoswで作成したHTMLをアップしてブラウザから表示の確認をしてみたところ、日本語が文字化けてしまいました。 ヘッダーには <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> として、文字コードをUTF-8にしてあるのですが、この部分を <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" /> とShift-JISにしてみると、日本語の文字化けが解消します。 できればcharset=UTF-8の状態で文字化けせずに表示してくれるようにしたいのですが・・・ どなたか原因がお分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。 テキストエディタはK2Editorを使用しており、「保存時の文字コードと改行種類の変更」でHTMLファイル自体の文字コードは「Shift-JIS」、改行コードは「CRLF」としております。 サーバは、CentOS5.4を使用しており、 コマンドで # printenv | grep LANG の結果は、 LANG=ja_JP.UTF-8 となっております。

    • ベストアンサー
    • HTML
  • サーバーにアップすると文字化けするんです

    PHP初心者です。 文字化けの原因がわからず、困っております。 サーバーにphpファイルをUPして、 IEで確認すると文字化けをしてしまうんです。 IEの[表示/エンコード]で[日本語(自動選択)]をクリックすると、文字化けは解消されますが、 ページを切り替えると、また文字化けしてしまって・・・。 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />の記述は怠っていません。 ローカルホストから確認したときは、文字化けせずに表示されています。 何が原因なのか見当がつきません。 どうすれば、文字化けを解消できるでしょうか。 お力をお貸しくださいませm(__)m

    • ベストアンサー
    • PHP
  • 文字化けを解決したい

    サイトを持つ管理人です。タグなどについてはかなり初心者です。 iPhoneなどの海外OSから閲覧すると文字化けしてしまうという報告を受けて、タグを色々いじっています。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を追加してみたのですが、これ単品だと私のPCから閲覧したときに文字化けしてしまいました。 そのため<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">と<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を並べてみたのですが、これで海外OSからも文字化けを起こさなくなったのでしょうか? こんな感じのタグです↓ <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW,NOARCHIVE"> <META NAME="ROBOTS" CONTENT="NOARCHIVE,NOINDEX,NOFOLLOW"> <meta name="viewport" content="width=380, maximum-scale=1.6" /> <title>練習</title> </head> 全てのスマホからもサイトを閲覧出来るようにするにはどうしたら良いでしょうか?それとも、全てのスマホから文字化けを防ぐことは不可能なのでしょうか? お知恵をお貸しください。

  • 自分のサイトが文字化けしてしまいます。

    はじめまして。どうかお力をお貸しください。海外のサーバーから新しいサーバー(海外)にサイトを移したのですが、常に西ヨーロッパ言語に選択されて文字化けし、他のパソコンでもそうなってしまいます。 以前のサーバーでは文字化けが起こらなかったので困っています。こちらのサイトも参考にさせて頂き、 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS>を入れたり、あるいは <html lang="ja">と記入してみますが改善されません。 frontpage expressで作っているのですが、作成したソースを見ると<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">になっていて、ページのプロパティでは、htmlのエンコードはちゃんと日本語(Shift_JIS)になっています。サーバーにアップした後にsift_JISに編集して保存しなおすと、ソースを見てもちゃんとshift_JISになっていますが、やはり西ヨーロッパ言語に選択されてしまいます。サーバー上のファイル編集の際にも文章が文字化けして表示されます。右クリックでエンコードを変えると正しく表示されますし、アドレスを入力してサイトを見ると案の定文字化けです。別のページにいく度に右クリックで直さなければなりません。一体何が悪いのでしょうか? ちなみに、使っているサーバーはfree.angeltowns.comで、angeltowns.comを使われている方の日本語サイトは正常に表示されます。この2つのサーバーの利用規約は全く同じです。 .htaccessは使うことができません。何か改善策があるようでしたら是非教えて頂けませんでしょうか。宜しくお願いいたします。

  • 文字化け

    HPを少しずつ作っているのですが、少しだけできたのでyahooのところにアップしてみました。しかし文字化けしてしまいました(涙) <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS"> このタグが関係あるのでしょうか? IE6

  • 文字コードのメタタグ

    今までは、問題なく表示されていたのですが急に、メタタグの <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> を入れると、逆に文字化けするようになりました…。 色々と試してみたのですが、メタタグを入れない時と、 <meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp"> の時だけ正常に表示されます…。 HTMLを編集するソフトの関係で、 シフトJISじゃないと都合が悪いようなので、すごく困っています…。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 文字コード変更による、文字化け・レイアウト崩れ

    文字コードをShift-jisからEUC-JPに変更したいのですが、 HTML・CSSに処理を施したら文字・レイアウトが大幅に崩れてしまいました。 以下のように変更したのですがやり方に間違いはないでしょうか? [HTML] <meta http-equiv="Content-Type" content="text/html; charset=Shift-jis"> ↓↓ <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> [CSS] @charset "shift_jis"; ↓↓ @charset "euc-jp"; また、ブラウザの表示⇒エンコードで(Shift_jis)を選択すると今までどおり正常に表示されます。(HTMLとCSSにはeuc-jpの記述にも関わらずです) これは文字コード変更したと思い込んでしまっているのでしょうか? 解決策お願いします。 あまり知識がありませんので、分かり易く教えていただけるとありがたいです。 ちなみにエディタはHTML Project2を使用しています。

  • CGIで作ったHTMLの文字化けについて

    CGIのヘッダを "Content-type: text/html\n\n" として、HTMLをブラウザに出力するcgiを作っているのですが、 「表示」という文字が「侮ヲ」と文字化けしてしまいます。 HTMLの<head></head>内には print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=shift-jis\">"; と記述して日本語を指定しています。 文字化けの原因がまったくわかりません。 心当たりありませんでしょうか?

    • ベストアンサー
    • Perl