Twitterに自動投稿できる文字数について。（URLは長さに関係なく23文字！）

<h1>概要</h1>
Twitterの自動投稿Botを作っていて、文字数制限がややこしかったので、色々試してみました。
特にURLは長さに関係なく23文字扱いだそうで。
折角色々試したので、残しておきます。

<h1>前提</h1>
PHPで実験しています。
また、外国語のややこしい文字についてのテストはしていません。

<h1>結論</h1>
実験の様子は後で書くとして、先に結論。
<ul>
<li>文字数は、全角2文字、半角1文字として計280文字まで。</li>
<li>URLは、長さに関係なく23文字としてカウントされる。（なので、全文字数が280文字未満でアウトになったり、超過してもセーフのケースがある）</li>
<li>TwitterがURLと認識しなかった場合は、当然23文字ルールは適用されない</li>
</ul>

<h1>実験の様子</h1>
結論は上記の通りなのだけど、エビデンスとして。
実験に使ったコードの文字列を書いておきます。
なお、コメントの～文字は、全て半角換算で記載しています。
※ちなみに、同じツイートを連投するとエラーになるようなので、実験の際はご注意ください。

```
// 280文字、URL含まず⇒OK（\nは1文字としてカウントされます）
$str="テストしてます。111\n01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";

// 281文字、URL含まず⇒NG（\nは1文字としてカウントされます）
$str="テストしてます。111\n012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";

// 280文字、URLを含むがURLと認識せず⇒OK
$str = "テストしてます。111\n0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123https://mixi.jp/";

//280文字、URLと認識⇒NG（URL自体は16文字なのだが、23文字としてカウントされたのでNG）
$str = "テストしてます。111\n012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012 https://mixi.jp/";

//258文字＋URL⇒NG（URLは22文字として認識される、という記事を見かけたので境界値テスト。NGなので23文字以上という事がわかりました）
$str = "テストしてます。1111012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 https://mixi.jp/";

// 257文字＋URL⇒OK（境界値テストその②。OKなのでURL=23文字扱い確定）
$str = "テストしてます。111101234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 https://mixi.jp/";

// 257文字＋長いURL⇒OK（文字数は458文字）
$str = "テストしてます。111101234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 https://www.google.com/search?q=php+%E6%96%87%E5%AD%97+%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&oq=php+%E6%96%87%E5%AD%97%E3%80%80%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&aqs=chrome..69i57j0.9445j0j9&sourceid=chrome&ie=UTF-8";
```

<h1>最後に</h1>
以下は弊社の宣伝になります。

現在弊社では、HRモンスターと呼ばれる
採用の新しいスタイルを提供するサービスをローンチいたしました。

ローンチ後のさらなる機能追加、改善などのPDCAサイクルを回すべく、
エンジニアを募集しております。
https://www.wantedly.com/projects/341182

Kubernetes、Vue.js（Javascript）、Django（Python）といったモダンな技術を使って、
開発しておりますので、もしご興味がある方はぜひ、ご応募お待ちしております。