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)値でソート
なぜ重要か
合成済み文字を使った文字列と基底文字+結合マークを使った文字列がある場合、正規化しない限りバイト比較で等しくなりません。
ユースケース
ダイアクリティカルマーク付きの言語(フランス語、ドイツ語、スペイン語、ベトナム語)を扱う多言語テキスト処理の開発者にとって不可欠です。結合文字の理解は、異なるプラットフォームやブラウザ間でのテキスト検索、ソート、表示のバグを防ぎます。