• ベストアンサー

エンコードの自動選択について

この機能って何を元に自動で選択をしているのでしょうか?サーバーにあげて見てみるとプログラムによってシフトJISを選択する場合とEUCを選択する場合があって困っています。シフトJISが選択されると表示されません。(EUCを指定すると見えますが。) 過去の質問を参考にして <META http-equiv="content-type" content="text/html; charset=EUC-JP"> を追加してみたがシフトJISが選択されて表示されませんでした。どうか教えてください。

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
回答No.3

スクリプトからの出力はEUC-JPなんですよね?もしかしたら、PHPの設定、mbstring.http_outputあたりがSJISになっているという事はありませんか? PHPは出力の際、contents-typeヘッダを出力しますが、その際charsetも出力するようです。この値と、実際の出力の文字コードが違うと、ブラウザ側で混乱するような気がします。 実際に検証した事はありませんので、実験してみて下さい。

参考URL:
http://www.php.net/manual/ja/ref.mbstring.php
hurikake
質問者

お礼

ありがとうございます。解決しました。 <head><title>日本語</title> <META http-equiv="content-type" content="text/html; charset=EUC-JP"> </head> と最初に日本語が入っていたためにシフト-JISになっていたようです。勉強になりました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ネットスケープ系のブラウザは、charsetをちゃんと確認しますが、IEは、これを結構無視して自分で判断するようです。(そのために間違う場合があるのだと思います) >何を元に自動で選択をしているのでしょうか? 多分、初めの方をある程度読んでみてそのデータを元に文字コードの判別をしているのだと思われます。 (必然的に、そういう方法だと間違う場合があります) なので、これはもうこういうふうになっているとしか言いようがないです。 MSに文句のメールをだしましょう いずれにしても、charsetは、指定するようにした方が良いです。

hurikake
質問者

お礼

誰でも見れるような何かいい方法はないでしょうか?

回答No.1

これは恐らくブラウザ(IE)の表示エンコードの質問ですよね。カテゴリ違いだと思います。こちらは締めて TOP > コンピューター [家庭向け] > ソフトウェア > ブラウザ あたりで質問されるとよいと思います。

関連するQ&A

  • エンコードの自動選択について

    この機能って何を元に自動で選択をしているのでしょうか?PHPで作ったプログラムをサーバーにあげて見てみるとプログラムによってシフトJISを選択する場合とEUCを選択する場合があって困っています。シフトJISが選択されると表示されません。(EUCを指定すると見えますが。) 過去の質問を参考にして <META http-equiv="content-type" content="text/html; charset=EUC-JP"> を追加してみたがシフトJISが選択されて表示されませんでした。どうすれば誰でも見れるようになりますか?

  • ブラウザのエンコード 自動選択について

    ブラウザが何を基準にエンコードを自動選択しているのか? 判断基準の一つに、metaタグを使ったcharsetでの指定があるかと思います。 EUCを指定する場合に、以下の様に記述してみました。 <meta http-equiv="content-type" content="text/html;charset=EUC-JP"> と、 <meta http-equiv="content-type" content="text/html;charset=EUC_JP"> ※EUC_JP EUC-JP "_"と"-"の差です。(アンダースコアとハイフン) です。 (EUC_JPと記述した場合) 別々のPCで同一のブラウザ(IE6)を使用し表示させるも、白紙の画面と正常画面と差が出ます。 charset=EUC_JP は、間違いで、charset=EUC-JPが正解という所までは辿り着いたのですが、殆どのブラウザでは、EUC_JPでも表示されます。IEも含めて。 表示されない側では、 charset=EUC_JPにしていると、ブラウザがエンコードをShift_JISに自動設定するため表示が空白になってしまうようです。 それもバージョンも同じブラウザ間での差です。 ブラウザ(IE)の設定は見る限り同じです。(エンコードは、自動選択) 結果的には、charset=EUC-JPにて解決済みですが、 EUC_JPでも問題なく表示できていたのは、何故なのでしょうか。

  • エンコードの自動選択の件 

    EUCでTeraTermからLinuxWebサーバへ送信しているので、 ブラウザのエンコードがEUCになるように <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">と htmlページで<head></head>間に挿入したのですが、 どうも、自動選択でブラウザが、「日本語(EUC)」 を認識しません。この教えて!Gooも確か、 日本語(EUC)だったと思いますが、ちゃんとブラウザで 認識されております。 私のサーバーに問題があるのでしょうか? それとも、<meta>タグがこれだとまだ足りないのでしょうか? サーバーは関係ないとどこかで聞いたことがあるんですが。 どなたかご存じの方、アドバイスお願いします。

    • ベストアンサー
    • HTML
  • エンコードをEUC-JP⇒ShiftJISに変えたい

    モバイル用サイトをEUC-JPで作ってしまったので、Shift-JISに変えたいのですが、 どのように変えれば良いのでしょうか? PHP、MySQLの設定ではEUC-JPです。 METAタグでShift-JISに変えてみましたし、 PHPでエンコーディングをShift-JISに設定したのですが、変わりません。 -------------------------------------------------------------- <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> mb_internal_encoding("SJIS"); -------------------------------------------------------------- また一から作り直すしか術はないのでしょうか・・・?

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

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

  • 「コード変換して保存する」が選択できない

    エディタにHTML Project2を使用しているのですが、 文字コードをshift_jisからeuc-jaに変更したく思っています。 <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> のタグは書き込んだのですが、ファイル⇒「コード変換して保存する」が薄字になっていて選択できないのです。 なぜなのでしょうか? 解決策お願い致します。

  • charsetの違い

    こんにちは。HTML超初心者です。 <meta http-equiv="content-type" content="text/html; charset= の後で文字コードがかわることを最近勉強しました。 Japanese(EUC) EUC-JP Japanese(Shift JIS) Shift_JIS Unicode Text Format-8 などがあるようですが、いったい何が違うのでしょうか? つまらんことですがどなたか説明よろしくお願いします。

    • ベストアンサー
    • HTML
  • EUC-JPをShift_JISに変えても大丈夫ですか?

    YahooのジオクリエイターでHPを作っていたら文字コードが<meta http-equiv="content-type" content="text/html; charset=EUC-JP">このようになっているんですが <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">に変えてしまっても問題ないんでしょうか? 複数ページがあって、いくつかのページだけEUC-JPで、ほかのページはShift_JISでした。 Shift_JISがメジャーと聞いたので全てのページの文字コードをShift_JISに変えてしまおうと思うんですが ほかのタグなど一切変えず文字コードだけ変えて、今まで普通に見れてたものが見えなくなったり、何か不具合が起こることはないんでしょうか? 今後、ジオクリエイター以外の環境でHPを作成・編集することもできるようにShift_JISで統一させておいたほうがいいですよね? よろしくお願いします。

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

    こんにちは。 PHPとMySQLを使ってショッピングカートを作ろうと思ったのですが、しょっぱなから躓いてしまいました・・・。 index.htmlでメタを <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> とeuc-jpにしたのですが、サーバーにアップすると文字化けしてしまいます。 表示のエンコードで確認するとシフトーJisになっています。eucにするとちゃんと表示されるのですが、更新するとやはり文字化けします。PHP・MySQLがeucですので、困っています。 どうにか対処方法はないでしょうか?ご教授をよろしくお願いします。

    • ベストアンサー
    • HTML
  • 作成したホームページのエンコードを変更したい

    ジオシティにサイトを作成中なのですが、トップページが表示されません。「表示」でエンコードをEUCにすると見えるようになるのですが、ほかのコンテンツはすべてSHIFT_JISで見えるようになってますし、なんとかトップページもShift_JISで表示させたいのですが。 一応<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> というタグもはってあるのですが… どなたかお教えください。

専門家に質問してみよう