Unicode結合文字と正規化

Unicode結合文字の仕組み、正規化形式との相互作用、テキスト処理と表示にとってなぜ重要かを学びます。

Character Types

詳細な説明

Unicodeの結合文字

結合文字は、前の基底文字の外観を変更することを意図したUnicode文字です。単独では使用されず、前の文字と「結合」します。

一般的な結合文字

コードポイント 名前
U+0300 結合グレーブアクセント à → à
U+0301 結合アキュートアクセント é → é
U+0302 結合サーカムフレックスアクセント ô → ô
U+0303 結合チルダ ñ → ñ
U+0308 結合ダイエレシス ü → ü
U+0327 結合セディラ ç → ç

正規化での扱い

  • NFC: 基底文字+結合マークを合成済み形式に結合(存在する場合)
  • NFD: 合成済み文字を基底文字+結合マークに分離
  • 正準順序: 複数の結合マークがある場合、NFD/NFCはCanonical Combining Class(CCC)値でソート

なぜ重要か

合成済み文字を使った文字列と基底文字+結合マークを使った文字列がある場合、正規化しない限りバイト比較で等しくなりません。

ユースケース

ダイアクリティカルマーク付きの言語(フランス語、ドイツ語、スペイン語、ベトナム語)を扱う多言語テキスト処理の開発者にとって不可欠です。結合文字の理解は、異なるプラットフォームやブラウザ間でのテキスト検索、ソート、表示のバグを防ぎます。

試してみる — Unicode Normalizer

フルツールを開く