CEF
読み:スィーイーエフ
外語:CEF: Character Encoding Form

 文字集合(CCS)のコードポイントをコード単位に写像するルール。
目次

概要
 UnicodeにはUTF-16という符号がある。この符号系は多層的であるが、それぞれの層を呼び分ける必要があり、このためにCEFという呼称が作られた。
 CEFは、あくまでもUTF-16で使うために作られた用語であり、UTF-16以外で使われることはまず無い。

特徴

CESとCEF
 UTF-16は、16ビット単位の符号系であり、つまり1バイトは16ビットであるということもできる。
 一方、文書ファイルなどは1バイト8ビットのバイト単位で処理されるため、16ビットでファイルに書き出したとしても、コンピューターや通信プロトコルは、それをバイト単位で処理することになる。
 さてこの時、バイト単位で処理される姿は従来同様「CES」と呼ばれるが、その元の形である16ビット単位の姿を何と呼ぶべきかという問題が生じ、これを新規に「CEF」という名称を付けて呼ぶようになった。
 つまり、Unicodeのコードポイント(CCS)→CEF→CESというように変形されていくことになる。

実装面での考え方
 Windows APIやJavaなどは、文字列をUTF-16で扱っている。
 プログラミングする際には、この16ビット整数の形で文字を扱うことになるが、このビット整数の状態をCEFと呼ぶことになる。
 CEFという状態において、各16ビットの塊をコードユニットと呼ぶ。
 例えば亜(U+4E9C)なら0x4e9cという16ビット整数をコードユニットという。BMP外なら、例えば0xD800 0xDC00という二つの16ビット整数のまとまりで表わすが、これは2つのコードユニットで表現されていることになる。

再検索