Tips・小ネタ 📅 2026-05-27 ⏱ 約5分

文字数カウントの正しい数え方 - 全角/半角/バイト数の違い徹底解説

#文字数 #SEO #SNS #初心者向け

X (旧Twitter) の文字制限は140字、Instagramのキャプションは2,200字、Googleの検索結果タイトルは32字 (推奨)... 媒体によって「1文字」の数え方が違うことをご存知でしょうか。本記事では、全角・半角・サロゲートペア・絵文字・バイト数の違いを徹底解説します。

「1文字」は意外と複雑

「文字数を数える」と言葉では簡単に言いますが、コンピュータの世界では「1文字とは何か」が非常に曖昧です。具体例で見てみましょう。

文字見た目の文字数JavaScript .lengthUTF-8バイト数Unicode文字数
1131
A1111
𠮷 (吉の異体字)1241
𩸽 (ホッケ)1241
👨‍👩‍👧‍👦 (家族絵文字)111257

このように、「人間の目には1文字」でも、コンピュータには複数文字として扱われるケースが多数あります。

主要な「文字数」の数え方5種類

1. 文字数 (Unicode コードポイント数)

最も「人間の感覚」に近い数え方。1つの文字を1としてカウント。Array.from(str).length で取得可能。

用途: SNS投稿数、ブログ記事数、文章執筆。

2. JavaScript .length (UTF-16コード単位数)

JavaScriptの str.length はUTF-16コード単位数を返します。基本多言語面 (BMP) の文字は1、それ以外 (絵文字や異体字) は2としてカウント。

注意: 「𠮷」のような サロゲートペア文字は2文字として数えられてしまうため、正確な文字数とは異なります。

3. バイト数 (UTF-8)

ストレージ消費量・通信量で重要。半角英数は1バイト、全角文字は通常3バイト、絵文字は4バイト。

用途: データベース設計、API通信制限、CDN転送量計算。

4. バイト数 (Shift_JIS)

古い日本のシステムで使われる。半角1バイト、全角2バイト。

用途: レガシーシステム、CSV、固定長レコード。

5. 文字数 (空白を除く)

原稿料計算等で使われる。str.replace(/\s/g, '').length

主要メディアの文字数制限

メディア項目制限数え方
X (旧Twitter)ツイート140字 (日本語)
280字 (英数字)
独自の Twitter Text Parsing
X Premium長文ツイート25,000字同上
Instagramキャプション2,200字UTF-16コード単位
Instagramハッシュタグ30個まで個数
Facebook投稿63,206字UTF-16コード単位
LinkedIn投稿3,000字UTF-16コード単位
YouTube動画タイトル100字UTF-8バイト数換算あり
YouTube説明欄5,000字同上
Google検索タイトルタグ30-35字推奨表示ピクセル幅
Google検索meta description120-160字推奨表示ピクセル幅
LINE 公式メッセージ10,000字UTF-16コード単位
note記事タイトル50字以内推奨表示幅

サロゲートペア・絵文字の罠

「𠮷野家」「𩸽の塩焼き」のように、サロゲートペア文字が含まれる文章を扱う場合は要注意です。

// ❌ 間違った数え方
"𠮷野家".length        // → 4 (実際は3文字)

// ✓ 正しい数え方
[..."𠮷野家"].length   // → 3
Array.from("𠮷野家").length  // → 3

絵文字も同様です。特に ZWJ (Zero Width Joiner) でつながれた絵文字は、見た目1文字でも内部的には複数文字扱いになります。

"👨‍👩‍👧‍👦".length       // → 11 (見た目1文字)
[..."👨‍👩‍👧‍👦"].length    // → 7 (それでも7)

家族絵文字は「男性 + ZWJ + 女性 + ZWJ + 女の子 + ZWJ + 男の子」という7つのUnicode文字の組み合わせなのです。

全角・半角の見分け方

「アルファベットでも全角と半角がある」というのは日本人の常識ですが、コンピュータ的には別の文字です。

種類Unicode範囲
半角英数A B 1 2U+0020 - U+007E
半角カナア イ ウU+FF61 - U+FF9F
全角英数A B 1 2U+FF01 - U+FF5E
全角ひらがなあいうU+3041 - U+3096
全角カタカナアイウU+30A1 - U+30FC
漢字 (CJK統合漢字)日本語U+4E00 - U+9FFF

本サイトの文字数カウントツール

本サイトの文字数カウントツールは、以下の8つの数え方を同時に表示します。

  • 文字数 (サロゲートペア正しく1文字カウント)
  • 文字数 (空白を除く)
  • 文字数 (改行を除く)
  • バイト数 (UTF-8)
  • 行数
  • 単語数 (英数字の連続)
  • 全角文字数
  • 半角文字数

巨大なテキスト (100万文字以上) も処理スキップで対応。50万字超は自動デバウンスで動作軽量化。完全無料・登録不要・ブラウザ内処理 (入力データは外部送信されません)。

関連機能

まとめ

  • 「1文字」の定義は媒体・用途で異なる
  • JavaScriptの str.length はサロゲートペアを正確に数えられない
  • SNSでの実用文字数チェックには Array.from(str).length または専用ツールが必須
  • 絵文字、特にZWJ結合絵文字は内部的に多文字
  • バイト数 (UTF-8/Shift_JIS) はストレージ・通信時に重要

SNS投稿前・記事執筆中の文字数チェックには、本サイトの文字数カウントツールをご活用ください。

← ブログ一覧に戻る