• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:shift_jisとutf-8)

shift_jisとutf-8の文字コードについて

このQ&Aのポイント
  • サイト制作の際に文字コードを変更し、ブラウザの文字化け問題を解決したい
  • CSSの設定に関しても、HTMLと異なる文字コードを使用しても問題はないのか疑問
  • 統一した文字コードを使用する場合、どのように変更すれば良いか知りたい

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

  • ベストアンサー
  • nu00ll
  • ベストアンサー率63% (65/103)
回答No.2

ひとつのファイルの中に複数の文字コードが混在することはありません。 Dreamwerverで書き足したときに、どちらか(文面からすると、たぶん「Shift_JIS」)に統一されていると思いますから、そのあたりの心配は不要です。 ファイルの文字コードや改行コードですが、たいていのソフトではステータスバーに表示されるようになっています。 Dreamwerverはどうでしょうか? もし表示されていなければ、そのHTMLファイルやCSSファイルをテキストエディタ(Windows標準の「メモ帳」ではダメです)でひらいてみてください。 たとえば「TeraPad」なら、右下に「SJIS」「CRLF」(これは文字コードが「Shift_JIS」、改行コードが「CR+LF」という意味です)と表示されます。 どちらにしても、開いたファイルを保存するときに、単純な上書きではなく、メニューから「文字/改行コード指定保存」(もしくは似たような表示のもの)を選べば、ファイルの文字コード、改行コードを変更できます。 同時に、Dreamwerverの設定も確認して下さい。 常に「Shift_JIS」で保存される設定だと、一度「UTF-8」にしても、またすぐに「Shift_JIS」にもどってしまいます。 設定を変えて、開いたときと同じ状態で保存するようにしましょう。 あるいは、常に同じ文字コード・改行コードで保存する設定にしてもいいです。 その際、文字コードはファイル内(metaタグや@charset)で指定したものにあわせて下さい。 ただし、他の文字コードのファイルを開くときは注意しないと、気付かないうちに(文字コードなどを)変えてしまうかも知れませんが。 改行コードについてですが、基本的にはサーバで使われているものにあわせます。 UNIX系なら「LF」、Windows系なら「CR+LF」です。 (「CR」はMac) ただ通常は、FTPでサーバにアップロードするときに、自動的にサーバの使用コードにあわせられますから、気にしなくてもいいですが。 あと、「UTF-8」を使う場合に重要な注意を。 他の国のことは知りませんが、日本の多くのテキストエディタやHTMLエディタは、ウェブ上で使われる「UTF-8」を「UTF-8N」と表記します。 両者の違いは「BOMがついているかいないか」で、エディタでは「UTF-8」がBOM付き、「UTF-8N」がBOMなしを表すようになっています。 (BOMについては複雑なので説明を省きます) なので、両方選べるようになっていたら「UTF-8N」を選択して下さい。 「UTF-8」にしてしまうと不具合の原因になります。 ちなみに、上で「メモ帳」がだめだと書いたのは、ここにも理由があります。 「メモ帳」では、「UTF-8N」にできないのです。 おまけに、「UTF-8N」で書かれたファイルをひらいて上書き保存すると、勝手に「UTF-8」にしてしまいます。 こまったものですね。

piro8184
質問者

お礼

ご丁寧な説明をありがとうございました。 いろんな本を読んでもわかりにくかったことが、なんとなくわかってきたような気がします。 CSSはDreamwerverではわからなかったので、「TeraPad」で開いてみると「UTF-8N」「CRLF」となっていました。 お話を総合すると、CSSの一行目には @charset "utf-8";ではなく @charset "utf-8N";と入れておいた方がいいんでしょうか?

その他の回答 (2)

  • nu00ll
  • ベストアンサー率63% (65/103)
回答No.3

すいません、混乱するような書き方になってしまっていたでしょうか。 「UTF-8N」というのは、あくまでもエディタがそう表示するようになっているというだけで、HTMLファイルやCSSファイルでは使うことはありません。 というか、 HTMLなどでの「UTF-8」=エディタでの「UTF-8N」 ということです。 ですから、HTMLなら <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> CSSでは @charset "UTF-8"; という書き方が正解です。 つまり、今のままでいいということです。 「N」の有無は、あくまでも、保存するときの注意ですから。

piro8184
質問者

お礼

ご返答ありがとうございました。 内容了解しました。 疑問が解けて大変助かりました。 どうもありがとうございました。

  • nu00ll
  • ベストアンサー率63% (65/103)
回答No.1

文字化けの原因ですが、おそらく、指定してある文字コードと、ファイル自体の文字コードが違っていたのではないでしょうか。 Dreamwerverでは自動的に「Shift_JIS」になるということなので、最初に導入したファイルの宣言が「UTF-8」なのに、「Shift_JIS」で保存されてしまったのではないかと。 HTMLファイルで <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> CSSファイルで、 @charset "UTF-8"; と指定していながら、ファイル自体を「Shift_JIS」で保存してしまうと、HTMLならブラウザで表示したときに文字化けが、CSSなら設定が反映されないことが起こり得ます。 ファイル内の指定と、ファイル自体の文字コード(作成したファイルを保存するときに指定できると思います)は同じものにして下さい。 それさえ正しければ、HTMLとCSSの文字コードが違っても問題ないでしょう(あとのことを考えれば、同じほうがいいとは思いますが)。 あとは、念のために改行コードも確認しておいたほうがいいかも知れません。 答えになっていますか?

piro8184
質問者

補足

お答えありがとうございました。 とりあえずCSSファイルが@charset "UTF-8";でも良いとのことで安心しました。 ただ、CSSファイルは他の人がUTF-8で作ったものの上から、私がDreamwervwe上で書き足していっているので、途中からShift_JISで書かれているのではないかと思います。 このファイルを全部UTF-8またはSHIFT_JISに変更しておいた方がいいですよね?その場合のやりかたなどはわかりますでしょうか? >あとは、念のために改行コードも確認しておいたほうがいいかも知れません。 これはどこで見ればよろしいでしょうか・・? 何度もすみません。 よろしくお願いします。

関連するQ&A