Unicode
Unicode(ユニコード)は、
符号化(非負整数など)した集合
符号化文字集合の符号(非負整数値)を、コンピュータが利用できるようにバイト列に変換する方法 などを定めた、文字コードの業界規格である。
miyamonz.icon
方式に関して普通に思うのは、そのまま符号をバイト列に埋め込んで欲しい
それができないのはなぜか?
入り切らないとか
言語レベルで既に確定してるとか(JS はUTF-16
UTF-32とかはそういう感じか
UTF-8とかその他読んだけど、8bitなり16bitなりの単位で区切らないといけない状況で、それでもコードポイントがそれよりでかいということか
要点まとめておきたい
ASCIIとの互換性
同じ文字に対する必要容量の変化
文字の長さのカウント
番号を付ける方法と、符号化の方法で2段階あるというのは理解できた
これの良い身近な例えないかな
Unicodeの文字集合の符号空間は
0-10FFFF (16進数)
1,114,112文字を含むことができる。
$ 16^5 + 16^4
Unicode 11.0(2018年6月公表)では137,374個(12%)の文字が割り当てられ、
137,468符号位置(12%)を私用文字として確保している。
また、2048文字分をUTF-16のための代用符号位置に使用しており、
加えて66の特別な符号位置は使われない。
残りの837,091(75%)の符号位置は未使用である
文字を特定する場合にはUnicode符号位置や一意につけられた名前が使われる。
例えば
「a」は U+0061 'LATIN SMALL LETTER A'、
「♪」は U+266A 'EIGHTH NOTE' である。
Unicode符号位置を文章中などに記す場合などは "U+" の後に十六進法でその値を続けることで表す。
BMP(Basic Multilingual Plane, 基本多言語面)内の符号位置は
U+0000 〜 U+FFFF の4桁(16ビット)で表すことができ、
SMP(Supplementary Multilingual Plane, 追加多言語面もしくは補助多言語面)以降は
U+10000 〜 U+10FFFF の5桁または6桁(最大21ビット)を必要とする。
また、符号空間のうち代用符号位置を除く符号位置をUnicodeスカラ値という。
収録されている文字は、各国で標準として規定されている文字集合や実際に使用されている文字を持ち寄り、委員会により取捨選択されている。
日本の文字については当初より JIS X 0201、JIS X 0208 と補助漢字を、Unicode 3.1 では JIS X 0213 の内容も収録している。
また収録において、元の各文字集合内で分離されている文字は尊重するが、異なる文字集合に同一の文字が収録されているとみなされるものは、同じ符号位置に割り当てる方針を取っている。
この際に集合が膨大であるという理由で、漢字について、中国、日本、韓国の各規格の漢字を統合(英語版)しCJK統合漢字としたことは大きな議論となった。