- ベストアンサー
文字コードについて
今、新しいサイトを某サイトの検索エンジンに登録しようとしたのですが、「ページ内に指定された文字コードでは解釈出来ない文字を発見しました。ページ内で2種類以上の文字コードが使用されている可能性があります。」というエラーが出ました。 3分割のフレームページなのですが、どのページの文字コードを確認しても問題ありません。検索エンジンに登録できないだけならよいのですが、ブラウザに表示された状態でエンコードを変更しようとするとフレームの表示がめちゃくちゃになります。(右フレーム内に表示されるべきものが、左フレームに表示されたりする) かなりお手上げ状態で、どう対処していいものか分かりません。 お知恵を拝借出来れば幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんにちは。 とても詳しくNo3の方が書かれているので、文字コード指定とファイルの文字コードについては、割愛(^^;>No3の方、ありがとうございます。 で、他に考えられるとしたら、外部ファイルの保存時の文字コード。 外部JavaScriptや、CSSなどのファイルに、日本語のコメントを入れていた場合、そのファイルを保存する時に(この場合、shift-jis)、違うコードで保存されていると、エラーが返る事があります。 ■index.html(METAタグ内、ファイル自体のコード:shift-jis) ■menu.js(ファイル自体のコード:unicode、euc) など。 なにはともあれ、一度ファイルをHTMLエディタではなく、テキストエディタで開いて確認するのをオススメします。 と、今気付いたんですが、お使いのマシンはMac?Win???
その他の回答 (3)
- kusukusu
- ベストアンサー率38% (141/363)
> "文字コード指定が問題なくてもファイル自体が違うコー > ドで保存されていたりすると"、というのはどういうこと > でしょうか。 htmlを手書きで書くときなどは、テキストエディタを使うと思います。 Windowsで標準であるテキストエディタはメモ帳ですが、是を使っている限り、文字コードが同行などと言うことを意識はしません。 と言うのもメモ帳では、sjisしか扱えないからです。 しかし、通常多くのWebサーバーがUNIX系のOSです。 これらの日本語標準はeuc-jpと言う文字コードを使います。 通常はそれでもsjisで構いません。 しかし、DBなどを利用する場合は、DBなどの内部エンコードがeuc-jpが多いため、出力もeuc-jpを利用することが多いです。 ここで文字コードの話ですが、例えば「山」と言う文字を表記したい場合、ネット上を「山」と言う文字が流れるのではありません。 山という文字をsjisで表記すれば、0x0000だとします(でたらめです。コード表を調べたわけではありません)しかしeuc-jpで0x0000は「$」を表しているとすれば(これもでたらめ)、山と書いたつもりが$と表記される…これが文字化けです。 テキストエディタの話に戻しますが、PerlやPHPでプログラムを書く場合、どうしても文字コードを意識する必要があります。 ゆえに、自分で書いたコードをsjisやeuc-jp、unicode等自由な文字コードで保存できるエディタがあります。 と言うか、ほとんどのエディタは出来るでしょう。 また、metaタグに表記する <meta http-equiv="Content-Type" Content="text/html;Charset=EUC-JP"> 等は、ブラウザに「このページは、EUC-JPで書かれていますよ」と教えるだけで、実際に書かれている文字コードは関係有りません。 例えば、sjisで書いたのにmetaタグで上記を入れるとブラウザはeuc-jp表記してしまうため、文字化けしてしまいます。 長くなりましたが、ようは、「参考URL」にあるような、文字コードを自由に指定できるエディタを使って書いた場合、間違ってeuc-jpを指定して保存してしまったのでは? しかし、metaタグにはsjisと書いてある… その様な可能性はないですか?と言うことです。 私はそんな可能性はないと思うのですが…(^^;
お礼
わかりやすい説明本当にありがとうございます。 なるほど。すごくよく分かりました! すべてのファイルをテキストエディタをshift-jisで開いたらいくつかのファイルがeucになっていました。なんでこんなことになったのかちょっと分からないのですが、私のミスでした。 本当にありがとうございました。
こんにちは。 ちょっとこれだけだと判断しかねるので、ヘッダに書かれている文字コードを教えてもらえませんか? フレームのHTMLに書かれている文字コードと、ただのHTMLの文字コードを・・・。 文字コード指定は問題なくても、ファイル自体が違うコードで保存されていたりすると、文字化けしたりしますが(解釈できない、とは言われないかな)。 例えば、EUC、とMetaタグで指定してるけど、ファイルはShift-JISで保存してあった、とか・・・・。
お礼
回答ありがとうございます。 どちらも普通にshift-jis指定です。 "文字コード指定が問題なくてもファイル自体が違うコードで保存されていたりすると"、というのはどういうことでしょうか。 宜しくお願いいたします。
- kusukusu
- ベストアンサー率38% (141/363)
> 3分割のフレームページなのですが、どのページの文字コードを確認しても問題ありません どの様に確認して、問題ないと判断したのですか? 通常htmlを手書きで書くとき、ページの部分毎に文字コードを変えると言うことは考えにくいし、意識すらしていないことが多いですね。 (何も考えずにmetaタグに shift_jis や EUC-JP と書いておけばいいですから) それを、文字コードを意識していると言うことは、何らかのDBを用いたり、Perl等でスクリプトを書いているしているのですか? それであれば、Perlの出力文字コードと、通常htmlの文字コードが違っていたり、DBの内部エンコードがEUC-JPで、出力にshift_jisを指定していると言う可能性もあります。 その辺を当たってみてください。
お礼
回答ありがとうございます。 >文字コードを意識していると言うことは、何らかのDBを用いたり、Perl等 >でスクリプトを書いているしているのですか? そんな大げさなものでなく、含まれているものといえば、javascriptやcssくらいですね。文字コードも意識していたわけでなく、エラーが出て初めて意識した次第です。
お礼
回答ありがとうございます。 一度ファイルをテキストエディタで開いてみたところなぜかecuで保存されているファイルがありました。menu いくつか以前のファイルを使いまわしたところがあるのでそのせいだと思います。 ちなみに使用マシンはwinです。 本当にどうもありがとうございました。