9. ユニコード(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 と言ってよい状態です。
|