Unicodeの基礎知識

文字,グリフ,フォント

まず最初に,文字(character),グリフ(glyph),フォント(font)の3つの語の定義を理解しないといけない. これらの定義は決して自明なものでもないし, 一般の人が漠然と理解している文字・フォントという語の定義とも一致しているわけでもないので, Unicodeで文字とかフォントとかいった場合に何を意味しているか・どんな観点で話を進めようとしているかを理解していないと混乱してしまう. Unicodeでは,文字,グリフ,フォントという語はだいたい次のような意味になっている. [Unicodeの定義そのままだとわかりにくいので,(危険だとしりつつ あえて)平易な表現に直してある. 正確な定義についてはUnicode::Glossaryを参照.]

単語 意味
文字 言語において意味をもつ最小単位. 特定の形状のことを指すものではなく,抽象的な意味と抽象的な形状のことを指す. 読者の理解を助ける意味で必要なので視覚的な表現(特定の形状)が示されている場合があるけども, Unicodeで文字といった場合には,特定の形状のことを言っているのではないことを理解しておく必要がある. Unicodeでは視覚的表現・形状をグリフと呼ぶ.
グリフ イメージ
Glyph image
何らかの表示媒体(コンピュータのディスプレイや紙などの)上に描いた グリフ表現の具体的な画像.
グリフ (1)1個以上のグリフイメージを表現する抽象形式. (2)単にグリフイメージの同義語としてグリフという語を使う場合もある. Unicodeにおいては,ある文字を具体的な画像表現に直す場合に,複数個のグリフを使ってもよいことになっている. 描画エンジンが,複数のグリフを組み合わせ,適切な位置に配置することで特定の文字の画像表現を作り出すことがありうる.
フォント 文字の視覚的表現のために使われるグリフを集めたもの. フォントはたいていの場合,大きさ,傾き,太さ,ヒゲのあり・なしといった変数と関連付けられていて, これらの変数に特定の値を与えると,グリフの具体的な画像表現の集合が得られる.

こういう風に説明すると,Unicodeでは,ものすごく厳密に各語の定義が与えられていて, 厳格に区別されているかのような誤解をもってしまうのだけど, 実際にはそうではなく,ユニコード コンソーシアム自身も“文字”ひとつを定義するのにもさまざまな難しい問題があること認識している.

文字レパートリー,符号化文字集合,エンコーディング スキーム

抽象度 用語 意味
文字レパートリー
Character Repertoire
順序付けされていない文字の集合.
符号化文字集合
Coded Character Set
文字レパートリーに一意の非負整数値をつけたもの.
文字に与えれた非負整数値のことをコードポイント(Code Point)という.
符号化形式
Encoding Form
符号化文字集合で与えられた整数値をコンピュータ上で表現できるバイト列に対応させたもの. 具体的にはUTF-8とUTF-16がある.
エンコーディング スキーム
Encoding Scheme
エンコーディング フォームに加えて,バイト直列化の方式を考慮したもの. 具体的には,UTF-8,UTF-16,UTF-16BE,UTF-16LE,UTF-32,UTF-32BE,UTF-32LEの7種類がある. 以前は,Unicode Transformation Format(UTF)と呼ばれていた.

はたいたかし
2004-04-26
トップ > 開発ツール > Unicode