X の文字数制限に対応したシェアテキスト生成方法
TypeScript
X でシェアする際の文字数制限(280文字)に対応するため、以下の方法で実装する。
文字数カウント方法:
- 半角文字(ASCII: 0x00-0x7F): 1文字としてカウント
- 全角文字(日本語、絵文字など): 2文字としてカウント
実装のポイント:
- 文字コードで半角・全角を判定
- 動的にコンテンツを追加(少ない件数から始めて、文字数に余裕があれば増やす)
- 文字数オーバーしたら前の状態に戻す
注意点:
- URLは実際の長さでカウントされる(t.co短縮URLの23文字固定ではない)
- 改行文字も1文字としてカウント
- Web Intent APIを使用:
https://x.com/intent/tweet?text=${encodedText}