文字数カウント
文字数・単語数・読了時間を数えます。絵文字や結合文字も、人が数えるとおりに1文字として数えます。
すべてブラウザ内で動作します。入力した内容はアップロードされません。
仕組みと使い方
「1文字」とは何か
「これは何文字ですか」という問いには、正解が複数あります。そしてその違いは些細ではありません。コンピュータが数えられる階層は3つあります。
- コード単位——テキストが格納されている形。JavaScript の
string.lengthが返す値です。絵文字は複数単位になることがあります。 - コードポイント——Unicode 規格上の1項目です。こちらのほうがましですが、結合文字を伴う文字は依然として2つに数えられます。
- 書記素クラスタ——読み手が「1文字」と呼ぶ単位です。上に大きく出ている文字数はこれを数えています。
差は小さくありません。3人家族の絵文字は、書記素では1、コードポイントでは5、UTF-16 のコード単位では8です。手元のカウンターでは収まっているのにフォームが「長すぎる」と拒否する場合、原因はほぼこれです。
全角換算について
日本語のフォームでは、かな・漢字・全角記号を2文字、半角文字を1文字として数えることがよくあります。そうしたフォームの「100文字まで」は、日本語なら50文字、半角英数なら100文字、あるいはその混在を意味します。
上に表示している全角換算はこの規則を適用した値なので、どちらの流儀にも自分で計算せずに合わせられます。
区切りのない言語の単語数
単語数を数えるのは、空白で語を区切る言語では簡単で、そうでない言語では完璧には不可能です。日本語を空白で分割すると1単語しか返ってきません。本格的な形態素解析には辞書が必要で、ブラウザ内で完結させるツールが背負うには重すぎます。
そこで採った折衷案が、CJK の文字をそれぞれ1単語として数え、残りを通常どおり分割して足すというものです。「API を使う」なら4になります。形態素解析器と一致はしませんが、安定していて予測可能で、分量の見積もりには十分です。
意識すべき文字数制限
| 場所 | 実用上の上限 |
|---|---|
| 検索結果のページタイトル | 切り詰められるまでおよそ60文字(全角なら約30字) |
| メタディスクリプション | およそ160文字(全角なら約80字) |
| SNS投稿 | 多くのプラットフォームで280文字 |
検索エンジンは文字数ではなくピクセル幅で切り詰めるため、幅の広い文字が並ぶタイトルは早く切られます。60文字は目安であって、厳密な境界ではありません。
頻出語の一覧について
「よく出てくる語」のパネルは、書いている最中には見えない癖を捕まえる手早い方法です。ひとつの語だけが突出して多い場合、その文章はたいてい同じことを繰り返しているか、言いたいことにまだ到達できずに周回しています。3文字未満の語は除外しています。そうしないと助詞や冠詞で一覧が埋まってしまうためです。
よくある質問
- 絵文字がここでは1文字なのに、他のツールでは8文字になるのはなぜですか?
- 多くのカウンターが UTF-16 のコード単位(JavaScript の .length が返す値)を数えているためです。家族の絵文字は複数のコードポイントを見えない結合子でつないで作られています。このツールは代わりに書記素クラスタ、つまり人が指させる単位で数えます。どちらの数字も嘘ではありませんが、画面で見えているものと一致するのは一方だけです。
- 投稿フォームや CMS はどの数え方を使っていますか?
- まちまちで、それがまさに問題です。コード単位で数えるもの、コードポイントで数えるもの、書記素で数えるものがあり、日本語のフォームでは全角を2文字として数えることも多くあります。このページでは文字数と全角換算を並べて表示しているので、相手のフォームがどちらの方式でも合わせられます。
- 日本語の単語数はどう数えていますか?
- 日本語や中国語は単語の間に空白を置かないため、空白で分割すると巨大な「1単語」が返ってきます。このカウンターは CJK の文字それぞれを1単語として数え、残りのテキストを空白で分割して足し合わせています。近似ではありますが、意味のない数字ではなく使える数字が出ます。
- 読了時間はどう計算していますか?
- 欧文は毎分約200語、和文は毎分約400字で計算しています。落ち着いた速さで音読した場合の慣例的な数値です。黙読はこれより速く、1.5倍程度になることが多いため、発表原稿や台本の上限の目安として使ってください。
- テキストはどこかに送信されますか?
- いいえ。すべての集計は入力に合わせてブラウザ内で実行されます。送信も保存もログ記録もありません。機密の文章の長さを確かめたいときに、知っておく価値のある点です。