ダイアクリティカルマーク
文字の上下に付加される補助記号。アクセント記号やウムラウトなど、発音の違いを示す。
ダイアクリティカルマーク (発音区別符号) とは、文字の上下や横に付加される補助記号です。フランス語のアクセント記号 (é, è, ê)、ドイツ語のウムラウト (ä, ö, ü)、スペイン語のティルデ (ñ) などが代表例です。
Unicode では、ダイアクリティカルマーク付きの文字を「合成済み文字」(NFC) と「基底文字 + 結合文字」(NFD) の 2 通りで表現できます。例えば「é」は U+00E9 (合成済み) または U+0065 + U+0301 (分解形) で表現されます。文字コード技術の書籍で詳しく学べます。
この二重表現は文字列比較で問題を引き起こします。同じ見た目の文字でもバイト列が異なるため、Unicode 正規化 (NFC/NFD) を適用して統一する必要があります。
文字数カウントの観点では、NFD 形式のテキストは基底文字と結合文字が別々にカウントされるため、見た目の文字数より多くなります。多言語プログラミングの書籍も参考になります。