以前から、「文字数を数える」「1文字とはなにか」といった興味深い問題の記事をいくつか目にします。 Intl.SegmenterがChromiumとSafariで採用されて以降、これを使って文字数を数えたり、反転させる記事を見かけます。たしかに、Intl.Segmenterを使うことで、絵文字や結合文字を適切に扱える場面は多々存在します。 上記の記事を引用しつつ確認してみます。実は以下の記述がとても重要です。 本稿のタイトルは「文字数を正確にカウントするには?」としましたが、以上の事情により「正確に」の部分は要件定義によるところが出てくる部分です。なので、ここで紹介する方法はすべてのアプリケーションに適用できるものではない点はご留意ください。 今回の記事では「なんとなくIntl.Segmenterで書記素で数える」を防ぐために、注意点をまとめます。 用語整理 まず、「1文字」「文字の長さ」と