結合文字
直前の基底文字に結合して表示される Unicode 文字。ダイアクリティカルマークや濁点などが該当する。
結合文字 (Combining Character) とは、単独では表示されず、直前の基底文字に結合して一つの文字として表示される Unicode 文字です。結合用ダイアクリティカルマーク (U+0300〜U+036F) が代表的です。
例えば、ラテン文字「a」(U+0061) に結合用アキュートアクセント (U+0301) を続けると「á」として表示されます。日本語では、結合用濁点 (U+3099) や結合用半濁点 (U+309A) が該当します。Unicode プログラミングの書籍で詳しく学べます。
結合文字の存在により、見た目が同じ文字でもコードポイント列が異なる場合があります。Unicode 正規化 (NFC で合成、NFD で分解) を使って統一的に扱う必要があります。
文字数カウントの観点では、結合文字は独立したコードポイントとしてカウントされるため、String.length の値と見た目の文字数が一致しません。書記素クラスタ単位でのカウントが正確です。文字処理アルゴリズムの書籍も参考になります。