Char Count|リアルタイム文字数・バイト数 (UTF-8)・原稿用紙枚数カウンター
文字数 カウント SNS JavaScript
結論:30秒で文字数とバイト数を計測する
- SEO タイトル制限:
30 〜 35 文字 - SEO Description:
90 〜 120 文字 - 正しく 1 文字とカウントする JS コード:
new Intl.Segmenter('ja', { granularity: 'grapheme' })
1. オンライン文字数・バイト数カウンター
テキストを入力すると、ブラウザ内でローカルに正確な文字数・バイト数をリアルタイム計算します。
🔢 この場で文字数をカウントする
文字数
0
行数
0
単語数(スペース区切り)
0
バイト数(UTF-8)
0
2. JavaScript で絵文字を「1文字」と正しく数える現代のコード
// ❌ 従来の手法: 絵文字や国旗でカウントが狂う
console.log("👍".length); // 2
console.log("👨👩👧👦".length); // 11
// ✅ 現代の手法: Intl.Segmenter を使う (書き手・読み手の感覚通り 1 文字と判定)
function getGraphemeCount(text) {
const segmenter = new Intl.Segmenter('ja', { granularity: 'grapheme' });
return [...segmenter.segment(text)].length;
}
console.log(getGraphemeCount("👍")); // 1
console.log(getGraphemeCount("👨👩👧👦")); // 1
3. 注意点(ハマりどころ)
- 改行コード(CRLF vs LF)によるバイト数のズレ
- Windows (CRLF:
\r\n) と Linux/macOS (LF:\n) で改行あたりのバイト数が 2 バイト vs 1 バイトと異なります。DB やフォーム送信時のバイト数超過エラーに注意してください。
- Windows (CRLF:
- データベース (VARCHAR) のバイト数オーバー
- MySQL の
VARCHAR(255)が「文字数」指定(utf8mb4)か「バイト数」指定(旧仕様)かによって保存可能文字数が異なります。日本語中心の場合はバイト数(文字数×3〜4)を考慮したカラム定義が必要です。
- MySQL の