Twitter/Xの280文字制限:文字のカウント方法

TwitterがURLの特別処理、絵文字、CJK文字を含む280文字制限の文字をどのようにカウントするかを理解します。

Platform Limits

詳細な説明

Twitterの文字カウントルール

Twitterの280文字制限は単純にJavaScriptの.lengthを使用しません。TwitterはUnicode範囲に基づく独自の加重カウントシステムを使用し、URLは特別な処理があります。

Twitterのカウントルール

文字タイプ ウェイト
ASCII (U+0000–U+10FF) 1
その他のほとんどの文字 1
CJK文字 (U+2E80–U+9FFF等) 2
CJK記号と句読点 2
絵文字 可変(通常2)
URL 23(固定、実際の長さに関係なく)

"Hello World" (11 ASCII文字)
  Twitterカウント: 11
  JS .length:    11

"こんにちは" (5 日本語文字)
  Twitterカウント: 10  (5 × 2)
  JS .length:    5

"Check https://example.com/very-long-url" (40文字)
  Twitterカウント: 29  (6 + URLの23)
  JS .length:    40

開発者にとってなぜ重要か

Twitterクライアントや投稿スケジューラーを構築する場合:

  1. 文字カウンターに.length使用しないでください
  2. 正確なカウントにはTwitterのtwitter-textライブラリを使用してください
  3. CJKをダブルでカウントして投稿が拒否されるのを防ぐ
  4. URLは常に23とカウント(t.coでラップされるため)

絵文字のカウント

ほとんどの絵文字はコードポイントの複雑さに関係なく、Twitterでは2文字としてカウントされます:

"😀" (シンプルな絵文字)        Twitter: 2, .length: 2
"👨‍👩‍👧" (家族絵文字)  Twitter: 2, .length: 8
"🇯🇵" (国旗絵文字)        Twitter: 2, .length: 4

これは複雑な絵文字シーケンスがバイトサイズに対してTwitterでは比較的「安い」ことを意味します。

ユースケース

ソーシャルメディア管理ツール、投稿スケジューラー、またはTwitter API統合を構築する際、Twitterの加重スキームに従った正確な文字カウントを実装することで、投稿の拒否を防ぎ、ユーザーが280文字の制限内でコンテンツを最大化できるようにします。

試してみる — String Length Calculator

フルツールを開く