テキスト・データツール

文字数カウンター

見た目の文字数と符号化単位の違いを確認し、日本語・中国語、絵文字、UTF-8のサイズを調べます。

入力テキスト

リアルタイム集計

Unicodeコードポイント、書記素クラスタ、UTF-16の長さ、UTF-8バイト数を区別して絵文字を確認できます。

入力内容はブラウザー内だけで処理し、サーバーにアップロードしません。

ツールについて

文字の符号化に注目したカウンターです。Unicodeコードポイント、書記素クラスタ、UTF-16コード単位、UTF-8バイト数を分けて表示するため、JavaScriptのstring.lengthを常に見た目の文字数と同一視する誤りを防げます。

使い方

  1. 文字、絵文字、結合アクセントを含む文字を入力します。
  2. コードポイント数、空白を除く文字数、UTF-8バイト数を確認します。
  3. 書記素クラスタとUTF-16コード単位を比較します。ブラウザーが書記素分割に対応していない場合は、その旨を表示します。
  4. 原文のコピーやサンプルの読み込みで、表現方法による違いを確認します。

使用例

  • 😀:Unicodeコードポイント1個、UTF-16コード単位2個、UTF-8で4バイト。
  • 👨‍👩‍👧‍👦:Unicodeコードポイント7個。grapheme分割に対応していれば書記素クラスタは1個です。
  • eに結合アクセントを加えたéと合成済みのéは通常同じように見えますが、前者は2コードポイント、後者は1コードポイントです。

集計の規則

文字数とUnicodeコードポイント数はArray.from相当のコードポイント走査で集計します。UTF-16コード単位には元の文字列の長さ、UTF-8バイト数にはTextEncoderを使用します。書記素クラスタはIntl.Segmenterのgraphemeモードを優先します。Unicode正規化は行わず、結合文字の異なる符号化をそのまま保持します。元の改行文字も符号化の集計に含まれ、末尾の改行は最後の空行を作ります。1回の入力上限はUTF-16コード単位2,000,000個です。

主な用途

  • API、ファイル、保存フィールドのUTF-8サイズを確認する。
  • 絵文字による文字列長の違いを調べる。
  • 字形、コードポイント、符号化単位の関係を理解する。

プライバシー

テキストの処理、ファイルの読み込み、変換、プレビューはすべて現在のブラウザー内で行います。入力をアップロードせず、バックエンド、データベース、オンラインAPI、外部CDNも使いません。内容の自動保存も行いません。コピーとダウンロードもブラウザー内で完結します。

FAQ

絵文字は何文字として数えますか?

単純な絵文字は1コードポイントの場合がありますが、家族、国旗、肌の色を組み合わせた絵文字は複数のコードポイントを含むことがあります。書記素クラスタの数が見た目の文字数により近い値です。

UTF-16の長さが文字数を上回るのはなぜですか?

基本多言語面を超えるコードポイントはUTF-16のサロゲートペアで表すため、1コードポイントが2コード単位を使う場合があります。

UTF-8バイト数はファイルサイズですか?

現在のテキストをUTF-8に符号化したときのバイト数です。追加のヘッダー、BOM、ファイルシステムのメタデータは含みません。

空白も数えますか?

通常の文字数には空白を含みます。「空白を除く文字数」ではスペース、Tab、改行、その他のUnicode空白を除外します。

Intl.Segmenterがない場合はどうなりますか?

コードポイント、UTF-16、UTF-8は引き続き計算できます。書記素クラスタの欄には、信頼できる数を提供できない旨を表示します。

開発者ツール一覧に戻る