書記素
書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
とりあえず、「人間が見て1文字と思うようなもの」を指して書記素(grapheme)といいます。
複数の Unicode コードポイントが結合しまくるので、可変長。
Unicodeとは? その歴史と進化、開発者向け基礎知識 - Build Insider
コードポイントで数えた長さもあくまで「Unicodeが値を定めている文字」の数である。「ユーザーが文字として認識するもの」の数を数えるにはもう一工夫必要になる。図1に示すように、文字の結合があり得るのだ。
https://gyazo.com/9617375440db63e4417eeacf11decab9
ユーザーは結合結果を1文字と認識する。Unicode的に複数の文字から成るといっても、[backspace]/[delete]キーで半分ずつ消えたり、テキスト選択でバラバラに選択されたりしては困ることになる。
困ることになった例→Scrapbox上でℹ️が分割される
この、ユーザーが1文字として認識する単位を書記素(grapheme)といい、書記素を構成する複数のコードポイントを書記素クラスター(grapheme cluster)と呼ぶ。
https://ja.wikipedia.org/wiki/書記素