GUIDE - 更新 2026-06-25
文字数カウントとバイト数の違い
文字数、空白除外、UTF-8バイト数を混同しないための実務ガイド。フォーム、DB、CSV、API、SEO文でどの値を見るべきかを整理します。
文字数カウント・バイト数計算を開くすぐに使える答え
文字数は人が画面で読む長さを確認する値です。UTF-8バイト数は、システムが保存、送信、検証するときのデータ量を確認する値です。
英数字だけなら1文字が1バイトになることが多い一方、日本語、韓国語、中国語、アクセント付き文字、絵文字は1文字でも複数バイトになります。そのため、画面では短い文章でも、DBの列制限、CSVアップロード、APIのリクエスト制限、CMSの入力制限で失敗することがあります。
バイト数チェックリスト
| 確認する場所 | 先に見る値 | 追加で見る値 |
|---|---|---|
| プロフィール、自己紹介、フォーム | 文字数 | 空白除外、改行数 |
| DBの列、ログ保存、検索インデックス | UTF-8バイト数 | 文字数、正規化後の文字列 |
| CSVアップロード | UTF-8バイト数 | 区切り文字、改行、文字コード |
| APIリクエスト | UTF-8バイト数 | JSON全体のサイズ |
| SEOタイトル、meta description | 文字数 | 実際の表示幅、CMS保存時のバイト数 |
UTF-8で増える例
UTF-8はUnicode文字をバイト列として表現します。JavaScriptのTextEncoderは文字列をUTF-8としてエンコードし、Unicode標準ではUTF-8を1から4バイトの符号化形式として定義しています。
| テキスト | 見た目の文字数 | UTF-8バイト数 | 注意点 |
|---|---|---|---|
Data | 4 | 4 | 英数字中心なら差が小さい |
あ | 1 | 3 | 多くの日本語文字は3バイト |
文字 | 2 | 6 | 2文字でも6バイトになる |
山田 | 2 | 6 | 氏名や住所のDB制限で見落としやすい |
😊 | 1 | 4 | 絵文字は見た目と内部表現がずれやすい |
実際の入力では、濁点の合成、絵文字の連結、改行、タブ、前後の空白で結果が変わります。言語名だけで推測せず、送信する最終テキストを測るのが安全です。
文字数とUTF-8バイト数の使い分け
| 目的 | 使う基準 | 理由 |
|---|---|---|
| 読みやすさを調整する | 文字数 | ユーザーが見る長さに近い |
| 入力欄の上限を決める | 文字数とバイト数 | UIと保存先の両方を守る必要がある |
| DBやAPIで失敗を防ぐ | UTF-8バイト数 | 保存・送信時はエンコード後のサイズが効く |
| CSVをExcelや外部SaaSへ渡す | バイト数と文字コード | UTF-8、UTF-8 with BOM、Shift-JISで扱いが変わる |
| SEO文を整える | 文字数 | 検索結果の見え方はバイト数だけでは判断できない |
実務ワークフロー
- 制限が「文字数」「バイト数」「単語数」「トークン数」のどれかを確認します。
- 実際に送る文字列を 文字数カウント・バイト数計算 に貼り付けます。
- 文字数、空白を除いた文字数、行数、UTF-8バイト数を比較します。
- DB、API、CSVに送る場合は、trim、正規化、JSON化、CSV化した後の最終テキストでも測ります。
- 日本語や絵文字を含む入力欄では、表示上の文字数だけでなく、保存先の上限に余裕があるかを確認します。
よくある失敗パターン
| 症状 | よくある原因 | 確認すること |
|---|---|---|
| 入力欄では通るのに保存で失敗する | UIは文字数、DBはバイト数を見ている | DB列、API、保存前変換 |
| CSVアップロードで「長すぎる」と出る | 改行、区切り文字、UTF-8バイト数を含めて判定される | CSV化後の1行と文字コード |
| 絵文字を1つ入れただけで上限を超える | 絵文字が複数バイト、または連結文字列になる | 絵文字削除前後のバイト数 |
| AI用の文字数見積もりと料金が合わない | 文字数、バイト数、トークン数は別の単位 | トークン計算も別途確認 |
実務FAQ
バイト数は文字数と同じですか?
同じではありません。英数字は1文字1バイトになることが多いですが、日本語の多くの文字はUTF-8で3バイト、絵文字は4バイト以上になることがあります。
日本語のフォームでは文字数制限とバイト数制限のどちらを表示すべきですか?
ユーザーに見せる制限は文字数が分かりやすいです。ただし、保存先やAPIがバイト数で落ちるなら、内部ではUTF-8バイト数も検証してください。
DBのvarchar(50)なら50文字まで入りますか?
必ずしもそうとは言えません。DB、文字セット、列定義、周辺のバリデーションによって文字数基準かバイト数基準かが変わります。日本語や絵文字を保存するなら実データで確認してください。
絵文字は1文字として数えてよいですか?
画面上は1つの記号に見えても、内部では複数のコード単位や複数バイトになる場合があります。家族絵文字、肌色修飾、結合文字を含む場合は特に実測が必要です。
UTF-8 with BOMにするとバイト数は変わりますか?
BOMはテキストファイルの先頭に付く追加バイトです。各文字の大きさが変わるわけではありませんが、CSVファイル全体のサイズやExcelの文字コード判定には影響することがあります。
関連ツール
- 文字数カウント・バイト数計算: 文字数、空白除外、行数、UTF-8バイト数を同時に確認できます。
関連記事
更新日
2026-06-25
参考にした公式文書
本文の判断基準を確認するために参照した公式文書です。
- TextEncoderMDN Web Docs - 確認日: 2026-06-25
- TextEncoderMDN Web Docs - 確認日: 2026-06-25
- Encoding StandardWHATWG - 確認日: 2026-06-25
- The Unicode Standard, Version 16.0 - Chapter 3Unicode Consortium - 確認日: 2026-06-25