Webサイトが文字化けしてしまった時にも知っておけば安心!utf-8などの文字コードについて

Webサイトが文字化けしてしまった時にも知っておけば安心!utf-8などの文字コードについて

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年初頭から文字コードの変換ができなくなっています。以前

僕はPCでインターネットを通じてWebサイトを見る時、WebブラウザはGoogle Chromeをメインに使用しています。 ある時、いつも...
">Google Chromeでテキストエンコーディング(文字コード変換)ができなくなったという記事でも紹介済)

https://arrown-blog.com/chrome-encoding/

しかし、HTMLファイル自体に文字コードの設定がなされていなかったり、UTF-8以外の文字コードが設定されていたとします。

すると、HTMLファイルの中に「あ」という文字が表示されていた場合、Webサーバ側では「82A0」という英数字の羅列として処理し、文字を表示するように努めます。

しかしながら、UTF-8では「あ」という文字はe38182という英数字の羅列で表現・処理されるようになっています。

UTF-8では、82A0という英数字の羅列は「あ」ではない別の文字を表示するようにルール設定がなされています。

こうすると、ルール設定が違うことによって、「あ」という文字を表現したいはずなのに別の文字が表示されてしまい、本来表示したい文字と別の文字が表示されてしまって「文字化け」が起きてしまうわけなんですね!

現在のWebサイトでは文字コードUTF-8を指定することがほとんど

表題通りですが、現在のWebサイトでは、文字コードはUTF-8を指定することがほとんどです。

文字コードを省略してしまうと、場合によってはUTF-8以外の文字コードでブラウザ側に解釈されてしまう可能性もあるようなので、文字コードはHTMLファイル上でしっかりと設定しておきましょう!

まとめ

ということで、今回は「Webサイトが文字化けしてしまった時にも知っておけば安心!utf-8などの文字コードについて」という内容でブログ記事を書いてみました!

明日は画像ファイル形式について書いてみたいと思います!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする