文字数カウント

入力した文字列の文字数を複数の基準で数えるツール。原稿の文字数制限、データベースのカラム長、SNSの投稿文字数の確認に使える。

文字数カウント

28文字
文字数(見た目の文字)21
文字数(空白・改行を除く)19
コードポイント数25
UTF-16単位数(JavaScriptのlength)28
バイト数(UTF-8)56
バイト数(Shift_JIS)34
行数2
単語数6

使い方

  1. 数えたい文字列を入力する。
  2. 見た目の文字数、空白・改行を除いた文字数を確認する。
  3. システムの制限に合わせてコードポイント数、UTF-16単位数、バイト数を確認する。

こんな用途に

  • 原稿やSNS投稿、メタディスクリプションの文字数制限を確認したいとき。
  • データベースのカラム長(VARCHARのバイト数・文字数)に収まるか調べたいとき。
  • 絵文字を含む文字列で、JavaScriptのlengthと見た目の文字数が違う原因を知りたいとき。

仕組み

  • Intl.Segmenterで書記素クラスタ(見た目の1文字)と単語に分割して数える。
  • UTF-8はTextEncoder、Shift_JISはブラウザのTextDecoderから作った変換表でバイト数を算出。

確認ポイント

  • 家族の絵文字や国旗のように、見た目は1文字でも複数のコードポイントで構成される文字がある。
  • MySQLのutf8mb4は文字数、Shift_JIS前提の古いシステムはバイト数で制限することが多い。
  • Shift_JISで表せない文字(絵文字など)は「?」の1バイトとして数える。

手元でやるには

文字数・行数・バイト数

必要環境: wc(macOS/Linux標準搭載)
wc -m -l -c input.txt

よくある質問

見た目の文字数とコードポイント数はなぜ違う?

結合文字や絵文字のZWJシーケンスは複数のコードポイントを組み合わせて1文字に見せるため。見た目の文字数はIntl.Segmenterで書記素クラスタ単位に数えている。

日本語1文字は何バイト?

UTF-8ではひらがな・漢字の多くが3バイト、Shift_JISでは2バイト。半角カタカナはShift_JISで1バイト、UTF-8で3バイトになる。

関連ツール