9. ユニコード(Unicode) 

   9−1  Unicode とは
   9−2  初期の Unicode
   9−3  現在の Unicode
   9−4  ISO/IEC 10646 と Unicode


9−1  Unicode とは

各国の文字コード体系が異なるということは、
 ・あるコード番号が、言語環境によって異なる文字を指してしまう
 ・同じ文字のはずなのに、国によってコードが違っている
といった問題を生じさせます。
下は、各国における「人」という字のコードです。日本語以外については、代表的なコード体系のみ掲げました。
 0x3F4D = 日本語 JIS16進
 0x906C = 日本語 シフトJIS
 0xBFCD = 日本語 EUC-JP
 0xC8CB = 簡体字中国語 GB2312 (EUC-CN)
 0xA448 = 繁体字中国語 Big5
 0xECD1 = 韓国語 KSC-5601 (EUC-KR)
 0x4EBA = Unicode
世界中のすべての文字が「ひとつの」コード体系の中の「異なる」文字として、収めされていれば、 同一システムの中で、どの言語であろうと、ある文字を指し示す文字コードはただ一つに決まるはず。 そんなコンセプトを実現するため、マイクロソフト、IBMをはじめとする米国の有力企業が中心となって、Unicode が開発されました(Unicode1.1 1991年)。

9−2  初期の Unicode(〜1999年;Unicode1.0 〜 Unicode2.1.9)

はじめ、16ビット=4桁の16進数( 0x0000 〜 0xFFFF )の範囲で、ASCII文字から始まる約6万5千字分の領域が策定されました。 (これで十分間に合うと思ったんでしょうね……)
各文字の番号を U+0000 〜 U+FFFF で表現しました。これを「コードポイント」と呼びます。
この中に、英数字や基本的記号、多くの言語を表現するための文字が配置されました。
日本語に関しては、ひらがな、カタカナ、句読点などの基本的な記号に加え、 中国・日本・韓国で用いられる漢字を「CJK統合漢字」という形にまとめて配置しました。 各漢字の並び順はJISコードとは異なりますが、JIS X 0208 の範囲の漢字のすべてが納まっていました。

とはいえ、異体字を含めると10万字とも20万字とも言われる漢字の数からすれば全く足りませんし、 漢字圏以外の言語だって使用文字を Unicode に入れてほしいのは同じこと。 残り少ない空き領域の争奪戦が始まりました。

9−3  現在のUnicode(〜2018年;〜 Unicode10.x)

その後、前述の Unicode部分を「基本多言語面」(第0面)とし、「追加多言語面」(第1面〜第16面)を加えた枠組みが作られました。
これによって、最終的には 111万字分の領域が確保されたことになります。
第0面 = U+0000 〜 U+FFFF 
第1面 = U+10000 〜 U+1FFFF
第2面 = U+20000 〜 U+2FFFF
第3面 = U+30000 〜 U+3FFFF
 :
 :
第15面 = U+F0000 〜 U+FFFFF
第16面 = U+100000 〜 U+10FFFF
Unicode 6.0(2010年〜)において、日本発祥ともいえる「絵文字」の追加登録が正式発表され、一般の話題となりましたね。
2018年時点での最新バージョンは Unicode 10.0(2017年〜)です。
その中で、漢字は第2面に拡張スペースが確保され、約8万7千字まで登録されています。

9−4  ISO/IEC 10646 と Unicode

世界中の文字コード統一をはかるための国際基準として ISO/IEC 10646 があります。
ISO/IEC 10646 は、本当に世界中で使われている文字・記号を収録するつもりで31ビット(4バイト)符号を採用し、 理論上は約21億文字を扱える規格です。

ISO-10646(国際基準) と Unicode(業界基準)は、当初はお互いバラバラに動いていたのですが、 そもそも目的は同じ(ひとつのコード体系で世界中の文字を扱おう)であったため、現在では統一歩調をとっています。
2018年時点で、建前上は ISO/IEC 10646 ⊃ Unicode、 事実上は ISO/IEC 10646 ≒ Unicode と言ってよい状態です。