SEなら最低限知っておきたい基礎知識の1つ、文字コードについてざっくりまとめています。
##目次
- 1.文字コードとは?
- 2.文字コードがなぜ重要なのか?
- 3.複雑化した文字コード
- 4.代表的な文字コード
- 1)ASCII
- 2)Unicode
- 3)Shift-JIS
##1.文字コードとは?
文字や記号をPC上で扱えるようにするために、1文字ずつ番号を割り振ったもの。
PCはデータを0または1でしか扱えないため、人間が使用する文字をそのまま扱うことができません。
そこで、文字を使って何かの処理をしたり通信したりするには、この文字にはこの番号、この記号にはこの番号というように1つずつ番号を割り振る必要があります。
ちなみに、文字だけでなく絵文字にも文字コードが割り振られています。
◆絵文字の文字コード(引用元:★)
##2.文字コードがなぜ重要なのか?
3.文字コードの種類 でご紹介しているように、文字コードにはいくつも種類があります。
文字コードの種類が想定しているものと異なるだけで、動くはずの処理が動かなくなったり、文字化けして見たいものが見れなかったりと、思わぬ問題に発展する場合もあります。
よって、文字コードを普段から意識しておくことは、IT業界に従事する者として最低限必要なことと言えます(かく言う筆者はこの記事を書くまであまり意識できていませんでした←)。
##3.複雑化した文字コード
文字コードには複数の種類が存在します。
最初に誕生したのはASCII(American Standard Code for Information Interchange)と言われており、アメリカで標準化されました。
しかし、ASCIIは英語に使われる文字にしか対応しておらず、日本語や中国語の漢字のように何千文字もあるような言語に対しては、文字数の違いから対応することができませんでした。
そこで、各国の言語で使われる文字や記号に対応できるように、ASCIIをベースとして後から次々と新しい文字コードが標準化されていき、今では様々な種類の文字コードが使われるようになりました。
##4.代表的な文字コード
よく使われる代表的な文字コードは以下の通り。
###1)ASCII(アスキー)
1963年に開発され、現在は国際標準化機構(ISO)により国際標準となっている、最も基本的な文字コードです。
2進数で0000000〜1111111(128個)までの数値を使い、アルファベット、数字、記号、空白文字、制御文字など128文字を表現します。
◆ASCIIコード一覧(引用元:★)
###2)Unicode(ユニコード)
日本語、ロシア語など、世界中の文字を1つの文字コードにまとめ、それぞれに番号を付けて利用できるようにしたもの。
Unicode誕生前までは多数の文字コードが世界各地で作成され使用されてきましたが、PCが世界各国に普及していく中で、国や地域ごとに文字コードを使い分けなければならない点が不便でした。そこで、1つの文字コードに統一することで世界中の文字を扱えるよう、1991年にUnicodeが開発されました。
現在では、絵文字や記号も含め約14万文字もの文字数をUnicodeで表現できるようになっています。
####(1)UTF-8(ユーティーエフエイト)
Unicodeを文字コードの1つとしてご紹介しましたが、実際にはあらゆる国や地域の文字を1つの文字コードに統一するという当初の目的から外れ、Unicodeの中でさらにいくつもの文字コードが作られることとなりました。その1つがUTF-8です。
また、以下の図のように、Unicodeは正確には文字集合と呼ばれ、その名の通り文字コードにしたい文字の集合体のことを言います。
文字集合に対して、どのような数値を各文字に割り当てるかを定義したものを符号化方式と言い、
Unicode:文字集合
UTF-8:符号化方式
となります。
◆文字集合と符号化方式(引用元:★)
ちなみに、PCでメモ帳を作成して保存する際に文字コードを選択できますが、選択項目の中にはUnicodeとUTF-8が並列しています。
Unicodeはあくまで文字集合ですが、Unicodeを文字コードとして選択して保存すると、符号化方式UTF-16が暗黙的に選択されます。
つまり、
メモ帳保存時に文字コードの項目からUTF-8を選択⇒そのメモ帳の文字コードはUTF-8
メモ帳保存時に文字コードの項目からUnicodeを選択⇒そのメモ帳の文字コードはUTF-16
となります。
###3)Shift-JIS(シフトジス)
Microsoft社が日本にPCを普及させるときに開発したコードで、ASCIIで表現される半角文字や記号に日本語の平仮名・カタカナ・漢字などを加えた文字コードです。
Shift-JISの"Shift"は、Shift-JISと同じ文字集合からなる符号化方式 JIS(ジス)コードを変更(シフト)して作成したことに由来しています。JISコードの非効率的な部分を改善し、効率的に漢字データなどを扱えることから広く普及しています。
SJIS(エスジス)と略されることもあります。