6月に入ってWebに関する基礎知識シリーズのブログ記事を書いていますが、本日は文字コードについて書いてみたいと思います!
皆さんは、Webサイトを見たりメールを見たりする時に、文字化けしている状況にあったことはありませんか?
今回はそんな文字化けの現象と大いに関係する文字コードについて触れていきます!
Webサイト作成を学び始めて、なんとなくmetaタグの中に文字コードを指定しているよ、という方を対象としています!
目次
Webサイトにおける文字コードって??
Webサイトの内容がHTMLというファイルで表現されていることはWebサイトを見る時に起きていること・Webサーバとブラウザの役割について知るという記事でも触れさせていただきました。
HTMLファイルの中には様々な文字情報が書かれているわけなのですが、こういった文字情報の中にはアルファベットだけでなく、日本語など様々な言語が含まれている可能性があります。
例えば、日本語で使用されているような種類の文字の場合、人間(日本語がわかる人)には読めても、コンピューターはその文字を普通に読み取ることができません。
そのため、どんな種類の文字情報であってもコンピューター上が読み取ることができるようするためのルールとして、文字の種類・情報ごとにに番号や英数字を割り振り、どんな文字も適切にコンピューターが読み取って表示できるようにしたものが、「文字コード」なんです!
一例を掲載します。(以下UTF-8という種類の文字コード)
- アルファベットのA・・・EFBCA1
- 「あというひらがな・・・e38182
このように、アルファベットや数字も含めて様々な文字・言語をコンピューターが解釈できるようにするために、独自のルールにのっとって英数字が割り振られています。
文字コードの種類はたくさんある!?これが文字化けを引き起こすややこしい問題
ここでややこしいのが、文字コードの種類が1つだけではないということです。
有名なものでいうとUTF-8やShift_JISといったものがあります。
最近のWebサイトでは文字コードにutf-8を指定することがほとんどなのですが、以前は(現在でも)Shift_JISを文字コードに用いるケースもあります。
文字コードが違うと、どんなことが起きるのでしょうか??
例えば、先ほども出てきた「ひらがなの”あ”」をUTF-8とShift_JISそれぞれの文字コードで表すとどうなるでしょうか。
- UTF-8が文字コード指定の場合・・・e38182
- Shift-JISが文字コード指定の場合・・82A0
このように、同じ「あ」という文字を表現するのにも、それぞれの文字コードで割り振られている数字やアルファベットが異なっているわけなんですね!
これが文字化けを引き起こす原因となっているわけなんです。
Webサイトを閲覧する際に文字コードはどこで指定されるのか??
現在Google Chrome以外のブラウザでは、Webサイトを閲覧する際にこの文字コードにしますよという内容を設定することができるようになっています。
(Google Chromeについては2017年初頭から文字コードの変換ができなくなっています。以前