• ベストアンサー

一つのHTMLの中で日本語の文字コードは混在してもいいのでしょうか?

ブログパーツを見ていると、外部JSファイルを読み込んで内容表示をさせるものがあります。 例:<script type="text/javascript" src="hogehoge.js" charset="utf-8"></script> ここで疑問なのは、charsetが設定されていることです。 例えば、読み込みするHTML側がShift-JISだった場合、これですと、同じページ内に2つのcharsetが混在することになります。 実際には読み込み出来ますし、表示も問題ない(ファイル内に日本語が含まれていた場合、むしろ保存したファイルの形式にあわせて指定しないと文字化けする?)と思うのですが、個人的には混在することがひっかかっています。 この場合、外部JSファイルをShiftJIS・UTF-8N・eucなどでそれぞれ保存して、別ファイルとしてリンクさせた方が良いような気がするのですが、その辺はどうなのでしょうか? charsetが指定出来る以上、混在しても構わないということなのでしょうか? ちょっと要領を得ない質問で申し訳ありませんが、ご回答いただければ幸いです。

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

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

文字コードを暗号と思えば解りやすいと思います。 暗号化の方式にAとBがあったとします。 aと言う文書はAで暗号化されています。 bはBで暗号化されています。 aをA解読する機械を使って解読して読むと「bがBと言う方式で暗号化されていますのでそれも読んでください。」 と出ていたとし、これをBを解読する機械で解読して読んでいると暗号化の方法のAとBは混在していません。 それとほぼ同じと考えれば良いと思います。 このときに重要なのは、読んでいる時にはすでに解読されていますので暗号化の方式は関係ないってことです。

dai-39
質問者

お礼

こちらの分かりにくい応答に、非常に分かりやすい例え話でご回答いただき、とても有り難かったです。 なるほど、暗号化と考えて、読んでいる時には既に解読されているので方式は関係ない、と考えればスンナリと理解出来ます。 ということは、結果は「charsetの指定をすれば、ファイルは1つで構わない」ということですね。 大変参考になりました。有難うございました!

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#20964
noname#20964
回答No.2

<script type="text/javascript" src="hogehoge.js" charset="utf-8"></script> これってhogehoge.jsの文字コードとMIMEタイプを指定しているのですよね。 それなら混在していないと思いますよ。 ”<script type="text/javascript" src="hogehoge.js" charset="utf-8"></script>”の部分は、utf-8以外で書かれていて参照するhogehoge.jsはutf-8ってことですよね。

dai-39
質問者

お礼

こちらも回答、ありがとうございます。 すみません、色々と不案内なもので、ちょっと上手く理解出来ていないのですが…。 読込側:index.html(Shift-JIS) JS側:hogehoge.js(UTF-8) であった場合、Shift-JISのファイルの中にUTF-8のファイルが読み込まれて表示される事、それ自体は「混在している」ということにはならないのでしょうか。 例えば、BODY部分にJSファイルを読み込んだとして、■=Shift-JIS、◇=UTF-8のタグ・テキスト部分とします。 感覚的には出力される結果が、 ■■■■■■■■■■■ ■■■■■■◇◇◇■■ ■■■■■■■■■■■ このような感じになる気がして「混在してる気がする」となるのですが…その考え自体が、勘違いだったのでしょうか? (すみません、図がわかりにくいかも知れませんが…)

すると、全ての回答が全文表示されます。
回答No.1

私も気になっていくつかのブラウザで試してみましたが、文字化けするようなものはありませんでした。(Mac,Win × Firefox,Opera,IE,Safari) RSSやXMLなどの文字コードはUTF-8が一般的です。これらを読み込んで表示させるAJAXプログラムを作るときに、どうしても文字コードが違うページが出てきてしまいます(LinuxサーバではやっぱりEUC-JPが使いやすいし、WinではShift-JISが使いやすい)。こうなると、やっぱり外部呼び出しで違う文字コードの方が便利ですよね。 ブラウザの仕様として、ある程度この辺は保証されているのではと勝手に解釈しています。

dai-39
質問者

お礼

回答ありがとうございます! 私も同じ出来る限りの環境で調べてみたのですが、文字化けはしませんでした。(Netscapeでも一応) ただ、特に問題がなくても「ルールとして」問題があるのであれば…と思いまして、質問いたしました。 ブラウザの仕様として、というご回答も一つの納得の材料として参考にいたします。 なお、すみませんが、回答の〆切はもう少しお待ちください。(出来れば、より技術的な面で「OK」か「ファイル分けるべき」という判断が欲しいので…)

すると、全ての回答が全文表示されます。

関連するQ&A