絵文字の文字数カウント|1 文字に見えて複数文字?仕組みを解説

SNS の投稿で絵文字を使ったとき、文字数が予想以上に増えた経験はありませんか。絵文字の文字数カウントには独特の仕組みがあります。

絵文字のカウント方法

絵文字は Unicode で定義されていますが、カウント方法はプラットフォームによって異なります。

絵文字見た目コードポイント数UTF-16 ユニット数
😀1 文字12
👍🏻1 文字2 (絵文字 + 肌色)4
👨‍👩‍👧‍👦1 文字7 (4 人 + 3 接合子)11
🏳️‍🌈1 文字46

なぜ複数文字になるのか

Unicode では、複数のコードポイントを ZWJ (Zero Width Joiner: ゼロ幅接合子) で結合して 1 つの絵文字を表現する仕組みがあります。家族の絵文字は「男性 + ZWJ + 女性 + ZWJ + 女の子 + ZWJ + 男の子」のように構成されています。

SNS での影響

プラットフォームごとにカウント方法が異なるため、投稿前の確認が重要です。

プログラミングでの注意点

JavaScript の String.length は UTF-16 ユニット数を返すため、絵文字を含む文字列では見た目の文字数と一致しません。正確な文字数を得るには Array.from(str).lengthIntl.Segmenter を使用します。

まとめ

絵文字の文字数カウントは見た目ほど単純ではありません。文字カウンタスでは絵文字を含むテキストも正確にカウントできるので、SNS 投稿前の確認にご活用ください。