文字数カウント
入力したテキストの文字数をリアルタイムに数えます。処理はブラウザ内で完結し、入力内容はサーバーへ送信しません。
文字数はUnicodeのコードポイント単位で数えます(JavaScriptの文字列長ではありません)。家族を表す絵文字・国旗の絵文字等、複数のコードポイントを組み合わせて1つの見た目を表す絵文字は、見た目の文字数より大きい数値になる場合があります。
0文字
このツールでできること
文字数カウントの主な機能です。
- 入力したテキストの文字数を、入力するたびにリアルタイムで表示します
- 日本語や絵文字を含むUTF-8のテキストにも対応します
- 空文字のときは0文字と表示します
- 入力・表示はブラウザ内で処理し、サーバーへ送信しません
手順を見る
- テキスト入力欄に文字を入力または貼り付けます
- 文字数がリアルタイムで表示されます
- 不要になったら「クリア」で入力内容を消せます
文字数のカウント方式について
コードポイント単位のカウント方式と、対応していない数え方を説明します。
詳しい解説を見る
Unicodeコードポイント単位でカウントします
本ツールは、JavaScriptの文字列長(String.prototype.length)をそのまま使わず、Unicodeのコードポイント単位で文字数を数えます。String.prototype.lengthはUTF-16のcode unit数であり、基本多言語面(BMP)外の文字(一部の絵文字等)は「サロゲートペア」という2つのcode unitの組で表現されるため、実際には1文字であっても2として数えられてしまいます。本ツールはこの数え方を採用していません。
サロゲートペアとは
UTF-16では、扱える文字の範囲を広げるため、一部の文字を2つのcode unit(サロゲートペア)の組み合わせで表現します。JavaScript文字列の内部表現はUTF-16のため、こうした文字に対して.lengthを使うと2という値になりますが、Unicodeのコードポイントとしては1文字です。本ツールはコードポイント単位で数えるため、この種の文字も1文字として表示されます。
絵文字によっては複数のコードポイントとして数えられます
一部の絵文字(家族を表す絵文字・肌の色を変えるための修飾記号が付いた絵文字・国・地域の旗を表す絵文字等)は、見た目には1つの絵文字であっても、複数のUnicodeコードポイントを組み合わせて表現されています。本ツールはこうした絵文字についても、実際に含まれるコードポイントの数どおりに数えます。そのため、こうした絵文字を含む文字列では、見た目上の絵文字の個数よりも大きい数値が表示される場合があります。
対応していない数え方
見た目の文字のまとまり(書記素クラスタ)単位でのカウントには対応していません。また、行数・単語数・バイト数・UTF-16 code unit数といった他の指標も現時点では表示していません。
よくある質問
文字数はどのように数えていますか?
JavaScriptの文字列長(String.prototype.length。UTF-16 code unit数)ではなく、Unicodeのコードポイント単位で数えています。そのため、絵文字等でサロゲートペアとして表現される文字も1文字として数えます。
絵文字を入力すると、見た目の文字数と表示される数値が違うことがあるのはなぜですか?
家族を表す絵文字・肌の色を変える修飾記号付きの絵文字・国旗の絵文字等、一部の絵文字は複数のUnicodeコードポイントを組み合わせて1つの見た目を表現しています。本ツールは見た目のまとまり(書記素クラスタ)ではなくコードポイント単位で数えるため、こうした絵文字は複数として数えられ、見た目の文字数より大きい数値になる場合があります。
空文字のときは何と表示されますか?
0文字と表示されます。
行数・単語数・バイト数は表示されますか?
現時点では対応していません。文字のコードポイント数のみを表示します。
入力したテキストはサーバーに送信されますか?
いいえ。ブラウザ内で処理し、外部へは一切送信しません。