文字数カウント
入力した文字列の文字数を複数の基準で数えるツール。原稿の文字数制限、データベースのカラム長、SNSの投稿文字数の確認に使える。
文字数カウント
28文字
| 文字数(見た目の文字) | 21 |
|---|---|
| 文字数(空白・改行を除く) | 19 |
| コードポイント数 | 25 |
| UTF-16単位数(JavaScriptのlength) | 28 |
| バイト数(UTF-8) | 56 |
| バイト数(Shift_JIS) | 34 |
| 行数 | 2 |
| 単語数 | 6 |
使い方
- 数えたい文字列を入力する。
- 見た目の文字数、空白・改行を除いた文字数を確認する。
- システムの制限に合わせてコードポイント数、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バイトになる。