Unicode

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

Unicode (ユニコード) とは、Unicode Consortiumが定める符号化文字集合及び文字符号化方式。「Uni」は符号化文字集合が単一 (英: uni) であることから。

文字符号化方式として、次の方式を定めている。

  • UTF-8 - 符号化文字集合のコードポイントを表現するために1から4バイト使用する。U+0000からU+007FはASCIIとそのまま対応するため、ASCIIの上位互換。HTML5などがこのエンコーディングを採用している。
  • UTF-16 - 符号化文字集合のコードポイントを表現するために固定で2バイト使用する。U+10000以降を表現するためにサロゲートペアを使用する。JavaC SharpJavaScriptWindowsなどがこのエンコーディングを採用している。
  • UTF-32 - 符号化文字集合のコードポイントを表現するために4バイト使用し、リトルエンディアンで表現する。ただし、コードポイントの上限値はU+10FFFFなので、必然的にメモリ効率が75%以下になる。Linuxのwchar_tは大体このエンコーディング。
  • UCS-2 - UTF-16の前身。全ての値を世界の文字と1対1で対応させる腹づもりだったが、破綻したのでほとんど使われていない。
  • UCS-4 - UTF-32の前身。全ての値を世界の文字と1対1で対応させる腹づもりだったが、U+10FFFFまでしか使わないことになったので事実上放棄されている。

書記素クラスタ[編集]

アラビア語などの言語では複数のコードポイントを結合して (人間の認識による「1文字」として) 表現することがある。このような「塊」のことを「書記素クラスタ」と呼ぶ。書記素クラスタの数はコードポイントの数より少なくなることがあるので、地道にコードポイントを数えるだけでは正しく実装することができない。

Wikipedia-logo.pngウィキペディアの生真面目ユーザーたちがUnicodeの項目をおカタく解説しています。