1. 文章を貼り付ける
2. 文字数
この画面の「文字数」は、全角・半角を区別せず、どの文字も1文字=1として数えたものです(原稿用紙のマス目と同じ数え方)。全角を2文字、半角を1文字として数える方式が必要な場合は、下の「数え方の詳しい話」の表をご覧ください。
3. 原稿用紙の枚数(概算)
それぞれの計算のしかた
| 単純計算 | 枚数 = 切り上げ(改行を除いた文字数 ÷ 400) いちばん広く使われている概算です。改行や段落の途中で空くマス目は数えません。 |
|---|---|
| 行の折り返しも数える方式 | 1行あたりの文字数 = 20字(400字詰め=20字×20行として計算)。 入力した各行について その行が使う行数 = 切り上げ(その行の文字数 ÷ 20)(空行は1行)を求め、合計した行数を 枚数 = 切り上げ(合計行数 ÷ 20) で枚数にします。段落の最後の行で余ったマス目も1行ぶんとして数えるため、単純計算より多めに出ます。 |
- 会話文(かぎかっこ)や段落の書き出しで1マス空ける書き方をするか
- 句読点や閉じかっこが行頭に来ないようにずらす(禁則処理)か、行末のマスに入れるか
- 小さい「っ」「ゃ」や長音符、ダッシュ・三点リーダーを1マスに1つ入れるか
- 英数字を1マスに2文字入れるか、1マスに1文字入れるか
字詰めは上の「原稿用紙の字詰め」欄で変えられます(例: 200字詰め=20字×10行)。1行あたりの字数は、字詰めが400・200のときは20字、それ以外は「字詰めの平方根に近い整数」を自動で使い、画面に表示します。
4. 文字の種類の内訳
| 種類 | 文字数 | 割合 |
|---|
判定に使っているUnicodeの範囲: ひらがな U+3041〜U+309F/カタカナ U+30A0〜U+30FF・半角カタカナ U+FF66〜U+FF9F/漢字 U+3400〜U+4DBF・U+4E00〜U+9FFF・U+F900〜U+FAFF・U+20000〜U+2FA1F(拡張漢字を含む)/英字 A〜Z・a〜z と全角のA〜Z・a〜z/数字 0〜9 と全角の0〜9。これらに当てはまらない文字(句読点・記号・絵文字など)は「記号・その他」に入ります。
5. 数え方の詳しい話
1文字の数え方(絵文字・旧字体でもずれない理由)
このツールは JavaScript の Array.from(文章).length で数えています。これは文字をコードポイント単位で数える方法です。
JavaScript でよく使われる 文章.length は UTF-16 の符号単位を数えるため、絵文字や一部の漢字(𠮟・𩸽 のような補助面の文字)が1文字なのに2と数えられてしまいます(サロゲートペア)。Array.from はこれを1文字として数えます。
| 数え方 | この文章での値 | 説明 |
|---|---|---|
| コードポイント数 Array.from().length | 0 | このツールが「文字数」として表示している値(改行も含む)。 |
| UTF-16 符号単位数 .length | 0 | 参考値。絵文字や補助面の漢字が2として数えられます。文字数の上限をこの方式で判定しているシステムもあります。 |
| 見た目の1文字(書記素) Intl.Segmenter | 0 | 絵文字の肌の色や家族の絵文字、異体字セレクタ付きの漢字など、複数のコードポイントで1つに見える文字を1として数えた値。お使いのブラウザがこの機能に対応しているときだけ表示します。 |
| 全角2・半角1で数えた値 | 0 | 参考値。半角の英数字・記号・半角カタカナ・半角スペースを1、それ以外を2として数えたもの。数え方はシステムごとに異なるため、提出先の仕様をご確認ください。 |
改行コードの扱い
改行コードには CRLF(\r\n・Windowsで多い)、LF(\n・Mac/Linux・多くのWebで多い)、CR(\r) があります。このツールは数える前に CRLF と CR をすべて LF(\n)1個に置き換えてから計算します。そのため、どの改行コードの文章を貼っても、改行1つは常に1文字・行の区切り1つとして数えられます。
「文字数(改行を除く)」は改行をすべて取り除いてから数えた値、「改行も1文字として数えた文字数」は \n を1文字として含めた値です。原稿用紙の枚数は、改行を除いた文字数を使って計算しています。
行数・段落数・単語数の決め方
| 行数 | 改行で区切ったときの個数(末尾に改行があると、その後ろの空行も1行として数えます)。文章が空のときは0行。 |
|---|---|
| 段落数 | 1つ以上の空行で区切られたまとまりの数。空白だけの行も空行とみなします。 |
| 単語数 | 空白(半角スペース・全角スペース・タブ・改行)で区切った塊の数。日本語は語の間に空白を置かないため、日本語の文章では実際の語数と大きく食い違います。英文などの参考値としてお使いください。 |
SNS・応募フォームの文字数制限について
X(旧Twitter)などのSNSや応募フォームの文字数の上限は、サービスの仕様変更やプランによって変わります。そのため、このページでは特定のサービスの上限値を載せていません。正確な上限は、各サービスの公式ヘルプ・募集要項で必ずご確認ください。
上限の数字がわかったら、上の「上限の文字数」欄に入れると、残り何文字か・何文字オーバーかを表示します。
出典・注意事項
- 文字数のカウント方式は、JavaScript の Array.from(文字列).length(文字列をコードポイント単位で分割して数える)を使用。文字列.length が UTF-16 の符号単位数を返すこと、補助面の文字がサロゲートペアで2符号単位になることは、ECMAScript 言語仕様(String 型の定義)および Unicode 標準(UTF-16 のエンコード方式)による。
- 見た目の1文字(書記素クラスタ)の数は Intl.Segmenter(granularity: grapheme)による分割数。Unicode の書記素クラスタの定義は Unicode Standard Annex #29「Unicode Text Segmentation」による。ブラウザが Intl.Segmenter に対応していない場合は表示しません(値を推測して表示することはしません)。
- 文字種の判定に使っている符号位置の範囲は、Unicode のブロック(Hiragana、Katakana、Halfwidth and Fullwidth Forms、CJK Unified Ideographs およびその拡張、CJK Compatibility Ideographs)による。
- 改行コード CRLF/LF/CR の区別は、テキストファイルの改行表現として広く使われている区分。このツールは数える前にすべて LF に統一している(本文「改行コードの扱い」に明記)。
- 原稿用紙の枚数は、400字詰め原稿用紙(20字×20行)を基準にした割り算で、このページ内で定義した計算です。特定の団体の規定にもとづく数値ではありません。実際のマス目の消費(かぎかっこ・禁則処理・英数字の詰め方など)で枚数は変わりうるため、概算としてお使いください。
- SNS・応募フォームの文字数上限は、サービスの仕様変更やプランで変わるため、このページでは数値を掲載していません(各サービスの公式情報をご確認ください)。
このツールは文字数の計算だけを行うものです。入力した文章はサーバーに送信されず、保存先はお使いの端末のブラウザ内のみです(「この端末に下書きを残す」がオンのときだけ保存します)。