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クライアントや投稿スケジューラーを構築する場合:
- 文字カウンターに
.lengthを使用しないでください - 正確なカウントにはTwitterの
twitter-textライブラリを使用してください - CJKをダブルでカウントして投稿が拒否されるのを防ぐ
- URLは常に23とカウント(t.coでラップされるため)
絵文字のカウント
ほとんどの絵文字はコードポイントの複雑さに関係なく、Twitterでは2文字としてカウントされます:
"😀" (シンプルな絵文字) Twitter: 2, .length: 2
"👨👩👧" (家族絵文字) Twitter: 2, .length: 8
"🇯🇵" (国旗絵文字) Twitter: 2, .length: 4
これは複雑な絵文字シーケンスがバイトサイズに対してTwitterでは比較的「安い」ことを意味します。
ユースケース
ソーシャルメディア管理ツール、投稿スケジューラー、またはTwitter API統合を構築する際、Twitterの加重スキームに従った正確な文字カウントを実装することで、投稿の拒否を防ぎ、ユーザーが280文字の制限内でコンテンツを最大化できるようにします。