コードポイント(英:code point)

コードポイントとは、文字や記号に割り当てられた一意の通し番号。類似の用語として文字コードがあるが、コードポイントとは明確に異なる。

コードポイント と 文字コード と 文字エンコーディング

コードポイントは、規格(例えばUnicode)内で、各文字や記号に割り当てられた一意の数値のことを指す。 一方、文字コード は文字をコンピューターで扱いやすいよう、符号化したバイト列のこと。 このとき、文字を文字コードに符号化するルールが 文字エンコーディングである。 Unicodeコードポイント を 文字コードに 変換するためのルールとして、 UTF-8、UTF-16、UTF-32 などがある。

コンピューター では コードポイント よりも 文字コード を使用したほうが処理効率が良いため、文字コード を使用して文字の処理を行う。例えばテキストファイルなどに文字情報を保存するとき、文字コード(バイト列)が保存される。

一方、文字コードは 使用するエンコーディングルールにより同じ文字でも値が異なるため、人間にとっては扱いづらい。このような時は コードポイント を使用すると、一意に文字を特定できる。

Unicode が普及するまで コードポイント という考え方は一般的ではなく、文字コードのみで文字の区別を行っていた。ASCII や Shift_JIS などの規格では、コードポイント と 文字コードが 同じ値で、エンコーディングルールも1つしかない と考えると、理解しやすい。

Unicode におけるコードポイント

Unicode では、世界中のあらゆる文字・記号・絵文字に番号を割り当てている。4バイトで表現され、'U+' に続く4桁の16進数で表される。

例えば アルファベットの A は U+0041、日本語ひらがな の あ は U+3042 と決められている。

Unicode コードブロック

Unicode では世界中の文字を取り扱うため、その数は膨大となる。これらを用途毎に分類し、特定の範囲のコードポイントにまとめたものをコードブロックと呼ぶ。

例えば 「基本ラテン文字(C0 Controls and Basic Latin)」のブロックには 全ての ASCII コードが含まれる。また、「CJK統合漢字ブロック(CJKは Chinese、Japanese、Korean の頭文字。中国語・日本語・韓国語以外で使用される漢字も含まれる) 」では、アジア地域で頻繁に使用される漢字が規定されている。

コードブロック や コードポイントは The Unicode Consortium が運営する Webサイト内の、次のページで確認できる。

主要な文字を含むコードブロック

以下に、ASCII および、日本語に関連するコードブロックへのリンクを示す。

ASCIIに関連するコードブロック

日本語に関連するコードブロック 漢字に関連するコードブロック

The Unicode Consortium(ユニコードコンソーシアム)

Unicodeは 米国カリフォルニア州に設立された非営利公益法人である、ユニコードコンソーシアム(The Unicode Consortium) によって開発、保守、および推進が行われている。

ユニコードコンソーシアム の会員には 主要なコンピュータ企業、ソフトウェアメーカー、政府省庁、研究機関、国際機関などが参加しており、個人でも会員になることが可能である。

参考資料