「1文字」の数え方は一つではありません
文字数カウントは単純に見えて、コンピュータ内部で「文字」を数える方法は大きく4通りあります。画面に見える1つの記号を数える書記素クラスタ(grapheme)、Unicodeの番号1つを数えるコードポイント、JavaScriptのString.lengthが数えるUTF-16コード単位、そして保存容量を表すバイト数です。ひらがな・漢字・英数字の ふつうの文章ではこれらが一致しますが、絵文字や結合文字、一部の漢字が混じると食い違います。このページの「スペースあり/なし」は 書記素クラスタ、つまり人が画面で数える方法に合わせ、参考としてコードポイントとJS lengthも別に表示します。
下の表はこのページをビルドしたときに実際に計算した値です。手入力ではないので、同じ文字でも数え方によって値が変わる様子をそのまま 確認できます。
| 文字列 | 見た目の文字数(書記素) | コードポイント | JS length | UTF-8バイト |
|---|---|---|---|---|
| 日本語 | 3 | 3 | 3 | 9 |
| が(1文字で収録された形) | 1 | 1 | 1 | 3 |
| が(「か」+濁点の結合形) | 1 | 2 | 2 | 6 |
| 半角カナ ガ | 1 | 2 | 2 | 6 |
| 𠮷野家(「𠮷」はサロゲートペア) | 3 | 3 | 4 | 10 |
| 絵文字 👍 | 1 | 1 | 2 | 4 |
| 日の丸の絵文字(地域指示子2つ) | 1 | 2 | 4 | 8 |
| 家族の絵文字(ZWJで結合) | 1 | 5 | 8 | 18 |
日本語で特に注意したいのは三つです。第一に「𠮷野家」の「𠮷」のように、基本多言語面の外にある漢字はUTF-16で2コード単位を使うため、 見た目は3文字でもlengthは4になります。第二に「が」は1つのコードポイントでも、「か」と濁点を結合した形でも同じ見た目になり、 後者はコードポイントが2つです。macOSのファイル名などからコピーした文字列にこの結合形が混ざることがあります。第三に絵文字で、 家族の絵文字のように複数の絵文字を不可視の接合文字(ZWJ)でつないだものは、見た目1文字でもコードポイント5つ、UTF-8で18バイトになります。 入力欄の下に注意チップが出たら、他のシステムでは多めに数えられる可能性があります。
単語数が参考値にとどまる理由
日本語は単語の間にスペースを入れないため、スペース区切りで数える「単語数」は、文章全体が1個と数えられるなど実態とかけ離れた値に なります。そこで、ブラウザのIntl.Segmenterによる単語区切りを使った「語数(推定)」も併記しました。これは辞書に基づく 推定で、ブラウザや環境によって結果が変わることがあり、形態素解析の正確な語数ではありません。日本語の分量は文字数で見るのが基本です。
原稿用紙換算の考え方
一般的な原稿用紙は20字×20行の400字詰めです。句読点やスペースも1マスを使い、段落の最初は1マス空けます。段落が終わったとき行の 途中でも、次の段落は新しい行から始まるため、文字数を400で割っただけの値より枚数が多くなることがあります。このツールの枚数は 段落ごとの字下げと改行、空行を1行として数えた推定です。行頭に句読点を置かない禁則処理や、縦書き特有の数字の扱いは反映して いないので、最大で1枚程度の誤差を見込んでください。応募先が換算方法を指定している場合は、その方法に従ってください。
| 文字数 | 400字詰め原稿用紙の最小枚数 |
|---|---|
| 200字 | 1枚 |
| 400字 | 1枚 |
| 800字 | 2枚 |
| 1,200字 | 3枚 |
| 2,000字 | 5枚 |
| 4,000字 | 10枚 |
この表は段落分けのない文章の最小値です。段落が多いほど、行末の空きと字下げのぶん実際の枚数は増えます。
計算例
例1: 絵文字つきの短文。「今日もがんばろう👍」は、目で数えるとスペースなしで9文字です。ところがJavaScriptのlengthは絵文字を2と数えるため10を返します。提出先がlength方式で上限ぎりぎりに設定されていると、 9文字のつもりでも超過と判定されることがあります。上限が厳しい欄では絵文字を避けるのが安全です。
例2: 400字のエントリーシート。下書きがスペースなしで437字なら37字を削る必要があります。目標欄に400と入れると、超過した字数が その場で表示されるので、文単位で削りながら調整できます。段落が5つあって提出先が改行を2文字(復帰+改行)と数える場合、最大で 5字ほど多く数えられることがあるため、395字前後で止めると余裕があります。
文字数制限を守るための実用的なヒント
削るときは、重複する修飾語や「〜ということ」「〜することができる」のような回りくどい言い回しから整理すると、内容を落とさずに 文あたり数文字を減らせます。逆に足りないときは、水増しをせず、数字・期間・役割・結果といった具体的な事実を一文足すほうが読み手の 役に立ちます。最後は必ず提出画面のカウンターで確認してください。WordやGoogleドキュメント、入力フォームでは、改行や半角スペース、 特殊文字の扱いが異なるため、同じ文章でも数値が数文字ずれることがあります。
SNSの文字数表示について
XやInstagramのチップはあくまで参考値です。プラットフォームの上限は仕様変更されることがあり、URLの短縮換算や、日本語など 全角文字を英数字より重く数える方式が適用される場合があります。このツールのチップは見た目の文字数をそのまま数えるため、日本語 投稿では表示上は範囲内でも実際のアプリでは超過になることがあります。投稿の直前はアプリ側のカウンターを正としてください。
このツールが向かないケース
特許明細書や論文、契約書のように、数える範囲(脚注・参考文献・表の中の文字を含むか)が規定された書類は、その規則に従う必要があります。 データベースの列長やSMSの上限は文字数ではなくバイト数やエンコードで決まることが多いため、「UTF-8バイト」のチップを参考にしてください。 校正で2つの原稿の差を見たいときはテキスト比較ツール、 正規表現で不要な文字を抜き出したいときは正規表現テスター、 英文の大文字・小文字を整えたいときは大文字小文字変換が役立ちます。 読み上げや黙読にかかる時間は読書速度テスト、 入力の速さはタイピング速度テストで測れます。
よくある質問
改行は文字数に含まれますか?
このツールでは「スペースあり」の合計に改行を1文字として含め、「スペースなし」では除きます。提出先によっては改行を2文字と数えるため、段落が多い文章は少し余裕を残してください。
絵文字が2文字に数えられることがあるのはなぜですか?
多くの絵文字はUTF-16で2コード単位を使うので、JavaScriptのlengthで数えるシステムでは2文字になります。このツールは見た目の1文字を1と数え、JS lengthとコードポイント数を別に表示します。
WordやGoogleドキュメントの文字数と違うのはなぜですか?
ソフトごとに空白、改行、脚注、表内の文字、ヘッダーなどの扱いが異なるためです。応募先が使う計算方法が基準になるので、最終確認は提出画面で行ってください。
全角と半角で文字数は変わりますか?
このツールでは全角も半角も同じ1文字と数えます。ただし提出先やSNSによっては全角を2文字相当と数える場合があり、バイト数も異なるので、必要に応じてUTF-8バイトのチップも確認してください。
入力した内容は保存されますか?
いいえ。計算はすべてブラウザ内で行われ、サーバーへの送信や保存はありません。ページを閉じる、または再読み込みすると入力欄は空に戻ります。