文字のエンコーディングってなあに?

文字のエンコーディングってなあに?IT初心者の疑問を解決!

はじめまして。休日は趣味でイラストを描いたり、アニメ鑑賞などをして過ごす、あすかすと申します。
「Webデザインをイチから自分の力でやってみたい!」という想いから、田舎のカフェ店員から一転して、都会でWebデザイナーを目指す上京ガールです。
IT業界にほとんど無知の状態で飛び込んだ、IT未経験者である私は、IT用語のカタカナと英語の多さに日々刺激をもらっています(主はカタカナと英語が苦手です)。

そんなIT未経験者が今回皆さんにお話しするのは、文字のエンコーディングについてです。私と同じように、これからIT業界に飛び込もうとしている方がいましたら、一緒に文字のエンコーディングについて考えてみましょう!

まず、エンコーディングって?

さて、文字のエンコーディングとはと書いていますが、まず『エンコーディング』とは何ぞや!?って話です。
皆さん、『エンコーディング』って聞いて何のことかパッと説明できますか?ちなみに私はいまいちピンときませんでした(笑)

エンコーディングとは

データ一定の規則に従って、目的に応じた情報に変換すること。変換された情報を符号エンコード:encode)、変換することを符号化エンコーディング)と呼び、符号を元のデータへ戻すことを復号デコード:decode)と呼ぶ。

デジタル用語辞典より参照

わかりやすく学校に例えてみます。私服登校の小学校を卒業し、制服登校の中学校に進学しました。
「本校では女子はセーラ服、男子は学ランとする!」と校則で決まっていたら、それに従って私服から制服に変えて登校するといううことです(ざっくり)!ルールに従って対応(変化)するってことですね。

文字のエンコーディングについても同じことが言えます!

文字のエンコーディングの必要性

文字のエンコーディングは、Webを制作するにあたって必要不可欠です。
なぜエンコーディングをする必要があるのか、それについてお話ししていきます。

エンコーディングをしないと起こること

エンコーディングをしないと何が起こるのかと言いますと、英語以外のテキストの場合に、「他の言語の国の人が読めない…!」なんてことが…!たくさんの人にホームページを見てもらいたいのに、他国の人に読んでもらえない…。見たくても言語が違うから見ても読めない…。そんなの悲しいですよね。

単に人が読めるかどうかだけではなく、コンピューターがデータを処理する必要が更に出てきてしまうなんてことも(泣)

こういった悲しい出来事を解決してくれるのがエンコーディングです。

文字コードとエンコード方式

文字コードは各文字に割り当てられた数字コード)のこと、エンコードはその文字コードを対応づける方式です。

文字コードとエンコード、両方の意味をもつ『Charset(チャーセット)』とまとめて呼ぶことも。

文字コードやエンコード方式は多くの種類があります。
その中でも代表的な文字コードとエンコード方式は以下の通りです。

文字コードエンコード方式
ASCII, JIS X 0201, JIS X 0208ISO-2022-JP
ASCII, JIS X 0201, JIS X 0208Shift-JIS
ASCII, JIS X 0208, JIS X 0212EUC-JP
UnicodeUTF-8, UTF16

文字コード」についてもっと詳しく知りたい方はこちら。

今回は Unicode について軽くお話します。

Unicodeとは

よく使われる文字コードに Unicode です、Unicode のエンコード方式には UTF-8UTF-16 などがあります。

Unicodeとは、世界中の文字を扱えるようにした文字コードであり、符号化文字集合という規格です。多くの文字が含まれているため、わざわざ国や地域ごとに文字コードを切り替える必要がないため、よく使われています。

UTF-8 UTF-16

Unicodeを実装したエンコード方式。

UTF-8は8bit単位で、ASCII(アスキー:Unicodeが出る前からよく使われていた文字コード)に互換しているため、古いプログラムでもそのまま利用可!

UTF-16は16bit、非ASCII互換。

HTMLで実際に指定してみよう!

実際にHTMLでエンコーディングしてみましょう!今回は UTF-8 を指定します。

meta要素でcharset属性を使う方法と、http-equivとcontent属性を使う方法があります。

文字のエンコーディングは head 部分(Web上で見えない部分)で指定します。

meta要素でcharset属性を使って指定する方法

<head>
<!-- meta要素でcharset属性を使ってUTF-8を指定 -->
<meta charset="UTF-8">
</head>

http-equiv属性を使って指定する方法

<head>
<!-- http-equiv属性を使ってUTF-8を指定 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>

UTF-8utf-8 、どちらでも大丈夫です。

前者の方が書きやすいのでお勧めします!

まとめ

今回、文字のエンコーディングについて簡単にお話ししてきました。
簡単に要約すると以下の通りです!

  • エンコーディングとは規則に従ってデータを変換すること!
  • 誰でも読めるようにエンコーディングは必須!
  • Unicodeは多くの言語に対応しているのでオススメ!

この記事を書くにあたり、文字のエンコーディングについて調べてみると、まとめきれないほど情報が出てきました。
全部を説明しようと思うと大変な量の記事になるので、今回は簡単に説明させていただきました!

作者情報

都会に憧れて上京してきた田舎者。
都会での暮らしは刺激でいっぱいです。趣味は動画鑑賞とカフェ巡りです。