パソコンごとに文字化けする問題の解決方法

このQ&Aのポイント
  • パソコンごとに文字化けが発生する問題の解決方法について説明します。
  • 自分のHPの構成は縦の2分割フレームで、基本文字コードは日本語SHIFT-JISです。
  • フレームの文字コードがUnicode(UTF-8)になると、PCによって文字化けすることがあります。解決方法としては、当該フレーム上でUTF-8にエンコード指定する方法や、フレームを使用せずに一枚で表示させる方法があります。
回答を見る
  • ベストアンサー

見るパソコンによって文字化けする

自分のHPを持っています。 構成は縦の2分割フレームで、基本文字コードは日本語SHIFT-JISです。 これを、片フレームの文字コードがUnicode(UTF-8)になると、見るPCによってちゃんと見えたり、文字化けして見えたりします。 文字化けした時には、手動にて当該フレーム上でUTF-8にエンコード指定してやるとちゃんと表示されます。 ブラウザはIE7 for WinXP SP2でエンコードの設定はどのパソコンも同じになっています。 UTF-8の方のソースには 『<META http-equiv="Content-type" content="text/html; charset=UTF-8" />』 を入れてやってますが状況は先に述べた通りです。 フレームに表示させず、普通に一枚で表示させるとちゃんと表示されます。フレームの時のみ状況がまちまちのようです。 どのパソコンで見ても適切なエンコードが選ばれるようにするにはどうすればいいのでしょうか? ちなみに、UTF-8のソースは、GoogleMapsをHTML化した物です。

noname#39639
noname#39639

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

  • ベストアンサー
  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.2

#1です。 適当なShift_JISとUTF-8のページを埋め込んだフレームページを作成して動作確認してみましたが、最初に読み込まれた段階で化けるというのは、確かに余り無いですね。 (確認したのはIE7、Firefox1.5、Opera9.x、Netscape8.x、Mac IE 5.2(これは手動で文字コードを変えても勝手に自分の好きな設定にするらしく意味が無かった)、Mac Safari、Mac Firefox2.0、Mac Opera9.x、Mac Netscape7.2あたりですが、化けないという同じ表示なのでみっちり検証してません。 ページを埋め込む元ページ自体の文字コードをUTF-8にしてもShit_JISにしても、最初に読み込んだ段階では化けないのですが、Mac Safariあたりが、フレーム元ページに文字コードをきちんと設定していなかった場合にタイトルなどが化けました。 ただ、以前に、インラインフレームで異なる文字コードのページを埋め込まれていて、文字化けしてしまっていたWebページの実例を見た事があるので、直接読み込ませる段階でなく、リンクを踏んで前のページから来た場合には高確率で化けるんではないでしょうか。 何れにしても、フレームを使う場合は文字コードは統一しといた方が無難な事には間違いありません。 //以前のページの設定を引きずるのかな・・・

noname#39639
質問者

お礼

検証までして頂きありがとうございました。 大変参考になりました。

その他の回答 (1)

  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.1

そりゃ、二つのページの文字コードを別々にして一つのフレームページに埋め込んでたら、化けますわ^^; IEのみでしか確認されていないようですが、他のブラウザではどうなるか分かったもんじゃありません。 >どのパソコンで見ても適切なエンコードが選ばれるようにするにはどうすればいいのでしょうか? フレーム内に埋め込むページの文字コードは統一して下さい。

noname#39639
質問者

お礼

回答ありがとうございます。 化けるのは当然の回答のようですが、逆に化けないで見えるPCもあるので何故?と思ってしまいます。 それともIE7に特化した現象?と思って、Firefox2.0.0.1で試したらちゃんとエンコードされて問題なく表示されました。今、見えなかったPCが近くにないので試せませんが、後で試してみます。

関連するQ&A

  • 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
  • Dreamweaverでソースが文字化けしてしまいました。

    Dreamweaverでソースが文字化けしてしまいました。 メタタグが <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> になってたので、 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> に修正して、保存して終了したあとに、再度Dreamweaverで開いたところ、ソースが全部文字化けしてしまいました。 元に戻そうと、メタタグをもとのutf-8に戻しても直りません。 メタタグをShift_JISにして、ページプロパティのエンコーディングをShift_JISに合わせると、ソース全部が文字化けしていた状態は直ったんですが、ところどころ文字化け状態のままになっています。 完全にもとの状態に戻したいのですが、どうしたら文字化けが直るのでしょうか。 教えてください。 よろしくお願いします。

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

    文字コードを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を使用しています。

  • 文字化けに関して

    文字化けが起きてしまって困っています。 PHPとMysqlを使用した、CMSを今あるサーバから別のサーバに移したいのですが、 新しいサーバに移すと文字化けをしてしまいます。 正確にはデータベースから読み込んでいる部分だけが文字化けしています。 index.phpにHTMLコードとして記述してある部分は文字化けしていません。 ブラウザ(IE)の「表示→エンコード」からUTF8を選ぶと逆に データベースの部分が正確に表示され、HTMLに直接書き込んだ部分が文字化けします。 現状でわかる範囲で書きます。 ・index.phpのmetaは <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> ・MYSQL(phpmyadminに書かれている)文字セットは UTF-8 Unicode (utf8) ・php.iniの設定 mbstring.language・・・japanese mbstring.internal_encoding・・・UTF-8 mbstring.encoding_translation・・・on mbstring.http_input・・・未設定 mbstring.http_output・・・未設定 default_charset・・・未設定 output_handler・・・未設定 output_buffering・・・未設定 magic_quotes_gpc・・・Off 詳しい方よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字コードってUTF-8が主流に?

    文字コードについては、UTF-8が主流になりつつあるってネットで観ました。 文字コードを検索すると次のような説明があります。 (UTF-8のエンコード) UTF-8は、UnicodeとASCIIコードを混在させるための規格です。 (シフトJISコード) シフトJISコードは、SJISとも呼び、Microsoft社が決めたコードでWindows95やMS-DOSやMacなどで使用されています。 その上で質問です。 1、 UTF-8が主流になるってことは、Windows、MacがUTF-8に方向転換するってことでしょうか? 2、 仮にUTF-8が主流になっても、サイトに <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> と記述していれば文字化けなく表示されるのでしょうか? 今の時点では判断できない質問なのでしょうか・・

  • コピーすると文字コードが変わっちゃう

    プログラムを(ちなみにPHP)エディター(ちなみに秀丸)で入力して保存時にエンコードの種類を「Unicode(UTF-8)」で保存 もちろんプログラム(HTML/PHP記述)では <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> を指定しています 実行すると文字化けも起こらず正常にホームページが完成しました それをコピーして別のサーバーにアップすると正常にホームページが開かないんです 文字化けだけでなくソースが画面に表示されました そのソースも文字化けです コピー先をエディターで開くと「日本語(Shift-JIS)」になっていました コピー元は「Unicode(UTF-8)」です なぜでしょう? そもそも「Unicode(UTF-8)」をコピーするには単純にコピーしてはいけないのでしょうか? プログラムの量が結構あるのでこの「日本語(Shift-JIS)」を一括して「Unicode(UTF-8)」に保存できるようなツールはないのでしょうか?

  • 文字化けを解決したい

    サイトを持つ管理人です。タグなどについてはかなり初心者です。 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> 全てのスマホからもサイトを閲覧出来るようにするにはどうしたら良いでしょうか?それとも、全てのスマホから文字化けを防ぐことは不可能なのでしょうか? お知恵をお貸しください。

  • HTMLのソースの文字化けを防ぐ方法

    Win2000とIE6.0の環境であるサイトを開き →エンコード→「自動選択」、もしくは  「日本語(EUC)」 →ソースの表示 とやっても文字化けします。 文字化けしないようにソースを開きたいです。 この問題について対処法が分かる方がおりましたら、お返事頂ければ嬉しいです。 ちなみに、開いたソースの <META http-equiv=Content-Type content="text/html; charset=EUC-JP"> は読み取れます。

    • ベストアンサー
    • HTML
  • コード上の埋込み漢字コードの文字化け

    PHP のソースコード上に埋め込んでいるべた書きの2バイトコードが 文字化けを起こしてしまいます。以下、経緯を含め詳しく書きます。 1.HTMLのFORMよりデータを入力。(toiawase.html) 2.PHPにて、入力データをWebブラウザ上に表示して確認。(mail_kakunin.php) 3.PHPにて、確認済みのデータをmail()関数にて送信。(mail_send.php) 上記の状態で正常動作を確認。 「1」の toiawase.html にて、charsetをUTF-8にする必要があり 下記のように charset のみ書き換えました。 <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下の不具合が発生しました  ・上記の「2」の部分ですでに入力したデータのみ文字化けを起こす。  ・当然、「3」にての送信でも入力データのみ文字化けして送られる。 よって、「2」のmail_kakunin.php にも以下の分を追加しました <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> すると以下のような不具合が発生しました  ・上記の「2」の部分で入力データは mb_convert_encoding() で UTF-8   に変換し、文字化けしませんが、今度はPHPのコーディングでべた書きの2バイト   コードが文字化けを起こす。 HTML上で、UTF-8 の漢字コード指定なので、PHPにべた書きの2バイトコードも UTF-8 で出力する必要があるのですが、やり方がわかりません。 ご存知の方教えていただけると助かります。

    • ベストアンサー
    • PHP
  • 携帯サイトで文字コード指定のメタタグは必要?

    phpで携帯サイトを作っています。 ソースコードをutf-8で作成して、表示する際にShift_JISに変換して出力しています。 ソースコード中の<head>の中には、 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> というタグを記述しています。 この、ソースコードをDreamweaverで編集したいのですが、Shift_JISで開こうとしてしまい、 文字化けしてしまいます。 コメントで先頭に以下のように記述すると、utf-8で開く、というtipsのようなものを 見つけたので、その通りにしたところ、開くときはOKです。 <?php //<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ?> ですが、保存すると、 Shift_JISで保存してしまいます。 多分、 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> というほうを認識してしまっているんだと思うのですが、そこで質問です。 携帯端末では、この指定は必須のものでしょうか? PHPからは、HTTPヘッダで文字コードも指定しているので、いらない筈だと思うのですが、 携帯ブラウザの中には、メタタグが必須のものもあるのかどうかが知りたいです。 また、Dreamweaverで、utf-8を指定して保存する方法があれば、そちらでもかまいません。 Dreamweaver は cs3(windows) を使っています。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP