HTMLの文字化けの直し方!たった1行で解消する方法をご紹介!
「HTMLで作ったページを開くと文字化けをしている」
「日本語だけがHTML上で文字化けしてしまう」
こんな風にお困りではないでしょうか?
HTMLにおける文字化けは、多くのプログラミング学習をしている方がつまずく部分でもありますが、たった一行をHTMLに追加するだけで文字化けを解決することができます。
今回「DMM WEBCAMP」では、文字化けの解決方法に関して以下のポイントを抑えて解説していきます。
- 文字化けを解消する方法
- 文字化けが起こる原因
プログラミング学習を始めたばかりの方でもわかりやすく解説していきます!
HTMLの書き方についてまだ詳しくない方は、下記の記事を読んでからコチラの記事を読んでみてください。
【初心者向け】HTMLの正しい書き方まとめ|各要素・タグの使い方を解説
エンジニアメンター
HTMLの文字化けを解消する方法
HTML形式は文字化けも起こりやすいのが特徴です。直し方は「ISO-2022-JP」という文字コードを指定すること、開く側(受け取り側)の場合は、Unicode(UTF-8)に表示設定を変更することで文字化けが直るケースが多いでしょう。
文字化けの詳しい原因は後ほど解説しますが、一言でいうとHTMLとブラウザで文字コードが異なっていると判断されると文字化けは起こります。
ここで理解できなくても、これからわかりやすく解説していくので安心してください。
文字化けを防ぐためには、以下のことが重要です。
- ブラウザが文字コードを解釈できるように、HTML上で文字コードを指定
- コンピュータ側が解釈できる文字コードを使う
早速、その文字化けの解決方法を2ステップでご紹介していきます。
ステップ❶ 文字コードを確認する
文字化けをしてしまったらまずは、文字化けしているHTMLファイルに使われている文字コードを確認します。
文字コードとは以下のように、<head>内に書かれている<meta>要素に記載されていることがあります。
<head>
<title>sample</title>
<meta ~>
</head>
上記のようにHTMLファイルの中に<meta>要素が書かれていない場合には、テキストエディタのデフォルトの文字コードが使用されています。
たとえば、Sublime Textはデフォルトでは文字コードが「UTF-8」になっているため、「Shift_JIS」や「EUC-JP」という「UTF-8」以外の日本語対応の文字コードを利用したい場合は、別途パッケージをインストールする必要があります。
このインストール方法はテキストエディタによって異なるため、ご利用のエディタに合わせて調べてみてください。
利用しているテキストエディタによって、デフォルトで設定されている文字コードは異なります。
HTMLで特に文字コードの指定がない場合(<meta>要素がない場合)このデフォルトの文字コードが使用されることになるので、文字化けしてしまった場合はエディタのデフォルト文字コードをチェックしましょう。
<meta>要素が設定されていなかった方は、次のステップ❷で文字コードを指定しましょう。
ステップ❷ 文字コードを指定する
結論的には、文字コード「UTF-8」を指定すると日本語であっても文字化けすることなく表示されます。
この「UTF-8」とは、最も多く使われている主流の文字コードです。
文字コードは<head>内で指定します。
HTMLの<head>内に文字コードを指定する<meta>要素を入れることで、ブラウザに利用している文字コードを伝達することができます。
<head>
<title>sample</title>
<meta charset="UTF-8">
</head>
charset=の後に、指定する文字コードを記述します。
HTMLに文字コードを明確に記載することで、ブラウザが正しくHTMLの文字コードを解釈してくれます。
また、charset= ~ はHTML5から使用されるようになった属性のため、HTML5より前は以下のように文字コードを記述をしていました。
<head>
<title>sample</title>
<metahttp-equiv="content-type" content="text/html; charset=UTF-8">
</head>
多くの方はHTML5を使用していると思うので、初めに紹介した<meta charset=”UTF-8″>を使用した書き方で問題ありません。
これで、HTMLファイルにおける文字化けが解消されたのではないでしょうか?
次に、なぜこの文字化けが起きてしまうのか、その理由を解説していきます。
プログラミングやパソコンを使って働きたい!
そのように考え、成長しているIT業界への転職を考えている方も増えてきました。
『IT業界に興味はあるけど、よくわからない…』
『パソコンとかそもそも苦手なのに私なんかにできるのかな』
『エンジニアって聞くけど難しそう』
反対にこのような声も聞く事があります。
そう考えている方は、一度ぜひ転職に成功したエンジニアの方のインタビューをご覧ください!
HTMLが文字化けする理由
「HTMLのファイルがなぜ文字化けしてしまうのか」
その理由を知るためには、コンピュータがどのようにデータを読み込むのかを理解することが重要です。
文字化けが起こる原因を説明する前に、コンピュータの仕組みと文字コードとの関係を説明していきます。
文字コードの存在
0と1だけを使った2進数
まず、コンピュータがどのように文字を扱っているのかを紹介していきます。
コンピュータは、人間と違って、文字をそのまま読み込むことができません。
コンピュータが扱えるデータは、数字の「0」と「1」のみです。
数字の「0」と「1」だけを扱えるパソコンが文字を読み込むために使うのが、「文字コード」です。
コンピュータは、「0」と「1」の羅列を、文字に変換して読み込むのです。
この「0」と「1」からなる羅列のことを、バイト表現と言います。
例えば、バイト表現を用いた文字コードのひとつASCIIでは、「01000001」は、「A」となります。
こののように、パソコンは各文字をバイト表現に変換して、読み込みます。
0〜9とA〜Fを使った16進数
0 と 1 の2進数のみで表記すると長くなりすぎるため、16進数表記(0から9とAからFの計16文字)でリスト表記する場合もあります。
また、2進数表記では、8文字で主要なアルファベット文字を表すことができます。(8文字=8bit=256通り)
しかし、日本語はひらがなもあれば、片仮名、漢字もあり、文字数が日本語は8文字表現では足りません。
そこで、日本語に対応した文字コードを使う必要があるのです。
文字コードの種類
更に多くの文字を表現できる16文字(16bit)を利用した文字コードには、「Shift_JIS」や「EUC-JP」があります。
その他、最近主流となってきているのが多言語に対応したコード「Unicode」の「UTF-8」です。
この文字コードは、英語や、ドイツ語、フランス語、中国語といった様々な言語に対応しています。
文字化けが起きる原因
HTMLの文字化けが起きる原因は、文字コードにあります。
文字コードには、様々な種類があると前述しました。
HTMLの文字コードと、ブラウザが解釈する文字コードが違っている時に、文字化けが発生するのです。
以下どれかの場合に文字化けが発生します。
- ブラウザ側が文字コードを解釈できない場合
- コンピュータ側が文字コードを解釈できない場合
例えば、「Shift_JIS」で設定したHTMLファイルをブラウザで表示させようとしたとします。
しかし上記のことが起こってしまい、HTMLで表記した文字が正しく解釈されず文字化けとなってしまうのです。
知っていますか?IT業界は市場価値が高まっています!市場価値の高い業界で働くことで、現在より年収UPが可能です。
また、 ITスキルを身につけることで、どの業界でも必要とされる人材に成長できます!
【DMM WEBCAMP】のプログラミングスクールでは、未経験から最短3ヶ月でエンジニアとして転職が可能です。
DMM WEBCAMPでは転職成功率98%の転職コースを複数提供しています
✔︎︎︎企業が本当に求めるビジネススキルを優先的に取得可能!
✔︎︎︎︎キャリアカウンセラーとメンターがあなたの転職活動とスキル獲得を両面サポート‼
✔︎︎︎紹介可能企業は600社以上!?
IT業界に転職したい方はぜひご覧ください!
「なんか今の仕事合わないな・・・」
「IT業界に転職してみたいなぁ・・・」
という方、DMMが運営する「WEBCAMP エンジニア転職」をご検討してみてはいかがですか?
「WEBCAMP エンジニア転職」では最短12週間でITエンジニアを目指すことが可能です!
WEBCAMPの卒業生は転職後に年収もUP!(例:年収250万円→500万円)
しかも今なら受講料の最大70%が給付金として支給されます。
DMM WEBCAMPは経済産業省・厚生労働省が認定した専門実践教育訓練給付金制度の対象です
まとめ HTMLの文字化けの原因は文字コードを指定することで解決!
今回「DMM WEBCAMP」では、HTMLファイルの文字化けを解消する方法と、文字化けをしてしまう構造を解説してきました。
- 文字化けを防ぐためには文字コードを指定する
- ブラウザには使用している文字コードを正しく伝える
特に、「Shift_JIS」や「EUC-JP」といった日本語の文字コードを利用する場合は、HTMLファイルの文字コードと、HTML内のmetaタグの文字コード指定を一致させるように気をつけましょう。
また、最近では本文中で紹介した多言語コードunicodeの「UTF-8」の利用が一般的になってきています。
多くのエディタでデフォルトで設定されているので、特別な理由がなければunicodeを使っておけば、問題は起こりにくいはずです。
他にも「DMM WEBCAMP」では、HTML学習に関する記事を公開しているので、ぜひ学習の参考にしてみてくださいね!