- ベストアンサー
HTMLの文字化けの原因と解決方法
- Windoswで作成したHTMLをアップしてブラウザから表示すると、日本語が文字化けしてしまう問題が発生しました。
- メタタグのContent-TypeのcharsetをUTF-8からShift-JISに変更すると、文字化けが解消されます。
- 保存時の文字コードと改行種類の変更で、HTMLファイルの文字コードをShift-JIS、改行コードをCRLFに設定しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、既にご質問者様自身が答えをだしているように思えますが、 Windowsは、一般的に文字コードがShift-JISです。 なので、それを、そのまま、UTF-8の環境に持っていけば当然文字化けがおこります。 Windowsで作成したファイルを再度エディターで開いて、UTF-8形式で保存しなおして、アップロードすれば文字化けはなくなると思います。
その他の回答 (1)
- k_kota
- ベストアンサー率19% (434/2186)
>以前、ウェブ制作会社でプログラマとして働いていたとき、テンプレートは「Shift-JIS」、JavaScriptやphpといったプログラムファイルは「EUC」で作るように、と言われてきたので、テンプレートをUTF-8にしてサーバにアップすることがどうもしっくりときません。 なんでそうするのか考えたことはありますかね。 そもそもOSの文字コードってなんなのでしょうか。 OSはそれぞれデフォルトの文字コードが違います。 winはSJISで業務系UNIXはEUC、LINUXはUTF-8です。 なので、テンプレはSJISでプログラムはEUCなのでしょうね。 (ここまで言ってもピンと来ないなら後は自分で調べて下さい) そして、charsetはその文書の文字コードをブラウザに教えるところです。 なので、基本的にOSが読み込む処理が無ければ文字コードはなんでもよくて、 中身と一致していればいいのです。 それぞれの意味が分かれば最初の回答者様が不思議に思った内容も理解できると思います。
お礼
k_kotaさん ご回答、どうもありがとうございます。 仕事をしていたときは、WindowsはShift-JISでUNIXはEUCといったOSの文字コードについては理解しておらず、テンプレートとプログラムで文字コードを変える理由について考えておりませんでした。 k_kotaさんのご回答で、テンプレートとプログラムの文字コードを変える理由がなんとなく理解できましたが、自分でもOSの文字コードについて、HTMLについて調べてみようと思います。 色々と勉強させていただきました。 どうもありがとうございます。
お礼
hjonathanさん 迅速なご対応、ありがとうございます。 >Windowsで作成したファイルを再度エディターで開いて、UTF-8形式で保存しなおして、アップロードすれば文字化けはなくなると思います。 上記の通りやってみたところ、文字化けせずに表示することができました。 どうもありがとうございます。 Windowsが一般的にShift-JISでUTF-8の環境に持っていけば当然文字化ける、ということにつきまして納得しました。 が、どうも本当にこうするのしかないのか?という疑問と言いますか、納得いかないところがございます。 以前、ウェブ制作会社でプログラマとして働いていたとき、テンプレートは「Shift-JIS」、JavaScriptやphpといったプログラムファイルは「EUC」で作るように、と言われてきたので、テンプレートをUTF-8にしてサーバにアップすることがどうもしっくりときません。 色々と試した結果、HTML側で <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> と記述した状態で文字化けない方法は他にはなさそうな感じで、 hjonathanさんが仰る通り、一度UTF-8にしてアップするしか今のところ分かりませんので、ご教授いただいた方法で対応させていただきます。 本当に、どうもありがとうございました。