公開日2020.04.27
最終更新日2022.05.02
はじめまして。休日は趣味でイラストを描いたり、アニメ鑑賞などをして過ごす、あすかすと申します。
「Webデザインをイチから自分の力でやってみたい!」という想いから、田舎のカフェ店員から一転して、都会でWebデザイナーを目指す上京ガールです。
IT業界にほとんど無知の状態で飛び込んだ、IT未経験者である私は、IT用語のカタカナと英語の多さに日々刺激をもらっています(主はカタカナと英語が苦手です)。
そんなIT未経験者が今回皆さんにお話しするのは、文字のエンコーディングについてです。私と同じように、これからIT業界に飛び込もうとしている方がいましたら、一緒に文字のエンコーディングについて考えてみましょう!
まず、エンコーディングって?
さて、文字のエンコーディングとはと書いていますが、まず『エンコーディング』とは何ぞや!?って話です。
皆さん、『エンコーディング』って聞いて何のことかパッと説明できますか?ちなみに私はいまいちピンときませんでした(笑)
エンコーディングとは
データを一定の規則に従って、目的に応じた情報に変換すること。変換された情報を符号(エンコード:encode)、変換することを符号化(エンコーディング)と呼び、符号を元のデータへ戻すことを復号(デコード:decode)と呼ぶ。
デジタル用語辞典より参照
わかりやすく学校に例えてみます。私服登校の小学校を卒業し、制服登校の中学校に進学しました。
「本校では女子はセーラ服、男子は学ランとする!」と校則で決まっていたら、それに従って私服から制服に変えて登校するといううことです(ざっくり)!ルールに従って対応(変化)するってことですね。
文字のエンコーディングについても同じことが言えます!
文字のエンコーディングの必要性
文字のエンコーディングは、Webを制作するにあたって必要不可欠です。
なぜエンコーディングをする必要があるのか、それについてお話ししていきます。
エンコーディングをしないと起こること
エンコーディングをしないと何が起こるのかと言いますと、英語以外のテキストの場合に、「他の言語の国の人が読めない…!」なんてことが…!たくさんの人にホームページを見てもらいたいのに、他国の人に読んでもらえない…。見たくても言語が違うから見ても読めない…。そんなの悲しいですよね。
単に人が読めるかどうかだけではなく、コンピューターがデータを処理する必要が更に出てきてしまうなんてことも(泣)
こういった悲しい出来事を解決してくれるのがエンコーディングです。
文字コードとエンコード方式
文字コードは各文字に割り当てられた数字(コード)のこと、エンコードはその文字コードを対応づける方式です。
文字コードとエンコード、両方の意味をもつ『Charset(チャーセット)』とまとめて呼ぶことも。
文字コードやエンコード方式は多くの種類があります。
その中でも代表的な文字コードとエンコード方式は以下の通りです。
文字コード | エンコード方式 |
ASCII, JIS X 0201, JIS X 0208 | ISO-2022-JP |
ASCII, JIS X 0201, JIS X 0208 | Shift-JIS |
ASCII, JIS X 0208, JIS X 0212 | EUC-JP |
Unicode | UTF-8, UTF16 |
「文字コード」についてもっと詳しく知りたい方はこちら。
今回は Unicode について軽くお話します。
Unicodeとは
よく使われる文字コードに Unicode です、Unicode のエンコード方式には UTF-8 や UTF-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-8 と utf-8 、どちらでも大丈夫です。
前者の方が書きやすいのでお勧めします!
まとめ
今回、文字のエンコーディングについて簡単にお話ししてきました。
簡単に要約すると以下の通りです!
- エンコーディングとは規則に従ってデータを変換すること!
- 誰でも読めるようにエンコーディングは必須!
- Unicodeは多くの言語に対応しているのでオススメ!
この記事を書くにあたり、文字のエンコーディングについて調べてみると、まとめきれないほど情報が出てきました。
全部を説明しようと思うと大変な量の記事になるので、今回は簡単に説明させていただきました!