絵文字の文字数カウント|1 文字に見えて複数文字?仕組みを解説
SNS の投稿で絵文字を使ったとき、文字数が予想以上に増えた経験はありませんか。絵文字の文字数カウントには独特の仕組みがあります。
絵文字のカウント方法
絵文字は Unicode で定義されていますが、カウント方法はプラットフォームによって異なります。
| 絵文字 | 見た目 | コードポイント数 | UTF-16 ユニット数 |
|---|---|---|---|
| 😀 | 1 文字 | 1 | 2 |
| 👍🏻 | 1 文字 | 2 (絵文字 + 肌色) | 4 |
| 👨👩👧👦 | 1 文字 | 7 (4 人 + 3 接合子) | 11 |
| 🏳️🌈 | 1 文字 | 4 | 6 |
なぜ複数文字になるのか
Unicode では、複数のコードポイントを ZWJ (Zero Width Joiner: ゼロ幅接合子) で結合して 1 つの絵文字を表現する仕組みがあります。家族の絵文字は「男性 + ZWJ + 女性 + ZWJ + 女の子 + ZWJ + 男の子」のように構成されています。
SNS での影響
- X (Twitter): 絵文字は一律 2 文字としてカウント (日本語の場合は 1 文字)
- Instagram: 絵文字は 1 文字としてカウント
- LINE: 絵文字は 1 文字としてカウント
プラットフォームごとにカウント方法が異なるため、投稿前の確認が重要です。
プログラミングでの注意点
JavaScript の String.length は UTF-16 ユニット数を返すため、絵文字を含む文字列では見た目の文字数と一致しません。正確な文字数を得るには Array.from(str).length や Intl.Segmenter を使用します。
まとめ
絵文字の文字数カウントは見た目ほど単純ではありません。文字カウンタスでは絵文字を含むテキストも正確にカウントできるので、SNS 投稿前の確認にご活用ください。