使い方
- 文章に文章を貼り付けるか入力します。数は入力するたびに更新されます。
- 文字数(書記素)で、読む人にとっての長さを確認します。コードポイントは、Unicodeの数です。
- UTF-8のバイト数で、多くのWebページやファイルでの大きさを読みます。
- 上限の表で、SMSとXの行を確認します。残りは、最後の部分または投稿に残っている量です。
文字、コードポイント、書記素
コードポイントは、Unicodeの表にある1つの番号です。読む人が見る文字は書記素クラスターで、1つの書記素に複数のコードポイントが入ることがあります。結合アクセント付きの e は2つのコードポイントで1つの書記素です。ゼロ幅結合子でつながった家族の絵文字は、5つのコードポイントで1つの書記素です。
書記素の数は、ブラウザの分割機能を使い、Unicodeの書記素クラスターの規則(UAX #29)に従います。例えば、拡張文字やゼロ幅結合子の前では分けず、絵文字の並びや地域指示子の組はまとまったままにします。
UTF-8、UTF-16、UTF-32のバイト数
- UTF-8は、U+007Fまでは1バイト、U+07FFまでは2バイト、U+FFFFまでは3バイト、それより上は4バイトを使います。かなと漢字は3バイトです。
- UTF-16は、ほとんどのコードポイントに16ビットの単位を1つ使います。U+FFFFより上のコードポイントは2つの単位(サロゲートペア)を使い、4バイトになります。
- UTF-32は、どのコードポイントにも正確に4バイトを使います。
SMSの上限
GSM-7の文字だけで書かれた文章は、1通のSMSに160文字収まります。それより長い場合は、1通あたり153文字になります。ヘッダーに140バイトのペイロードの一部を使うためです。拡張表の文字(改ページ、^ { } \ [ ~ ] | とユーロ記号)は、それぞれ2つの位置を使います。
GSM-7にない文字が1つでもあると、UCS-2で送られます。1通のSMSに70文字、長い場合は1通67文字です。かなや漢字もGSM-7の外なので、UCS-2になります。このツールは、ş、ğ、ı、İ、ç、Çも GSM-7の外とみなします。これはトルコ語の文章について、より厳しい数え方です。
- GSM-7の表と拡張表は、Wikipedia(英語)の「GSM 03.38」の記事から取られています。規格そのものは3GPP TS 23.038(Alphabets and language-specific information)です。
- 153と67の数字は、Wikipedia(英語)の「SMS」の記事にあり、160と70の数字の規格を引用しています。
Xの投稿の長さ
Xは、投稿を280の重み付き文字で数えます。ほとんどの文字は1、絵文字と中国語・日本語・韓国語の文字は2です。リンクは長さに関係なく23と数えます。重みの範囲は、Xのtwitter-textの設定(バージョン3)にあるもので、Xの文字数に関する説明ページも同じ規則を言葉で示しています。
ツールは http:// または https:// で始まるリンクを見つけます。スキームなしで書かれたリンクは普通の文字として数えるため、そのような投稿は、Xが数えるより長く数えられることがあります。
計算例:今日は晴れ 👋
文章は7文字で、コードポイントも7つです。絵文字は1つのコードポイントですが、UTF-16では2単位なので、文字列の長さは8です。UTF-8のサイズは20バイトです。内訳は、5つの漢字とかなが各3バイトで15バイト、空白が1バイト、絵文字が4バイトです。UTF-16のサイズは8 × 2 = 16バイト、UTF-32のサイズは7 × 4 = 28バイトです。
| 項目 | 値 |
|---|---|
| 文字数(書記素) | 7 |
| UTF-16の単位数 | 8 |
| UTF-8のバイト数 | 20 |
| UTF-16のバイト数 | 16 |
| UTF-32のバイト数 | 28 |
| SMS、UCS-2:1通 | 8(上限70、残り62) |
| Xの投稿 | 13(上限280、残り267) |
よくある質問
絵文字は、なぜ1文字として数えられるのに、UTF-16では2単位ですか?
基本多言語面の外にある絵文字は、サロゲートペアと呼ばれる2つの16ビット単位が必要です。読む人は1文字と見るため、書記素の数は1ですが、UTF-16の長さは2です。
日本語の文章は、英語の文章よりSMSの1通に入る文字数が少ないのはなぜですか?
かなや漢字はGSM-7の文字ではないため、1文字でもあると文章全体がUCS-2になります。UCS-2のSMSは、1通に160文字ではなく70文字まで入ります。
Xの数が、画面で見える文字数より多いのはなぜですか?
Xは、絵文字と中国語・日本語・韓国語の文字を2として数え、リンクを23として数えます。ここに表示される数は、同じ重みに従っています。
SMSとXの上限は、すべての通信会社やサービスで正確ですか?
規格とXの公表された重みに従っています。通信会社は、メッセージを別のやり方で分割したり、料金を変えたりすることがあります。また、ツールはhttpやhttpsのないリンクを確認しません。
入力した文章はどこかに送信されますか?
いいえ。数はブラウザ内で行われ、文章は保存もサイトへの送信もされません。ページを離れると、入力した内容は残りません。
出典
- Wikipedia(英語): SMS(メッセージの長さと153、67の数字)
- Wikipedia(英語): GSM 03.38(GSM 7ビットの基本表と拡張表)
- 3GPP TS 23.038(英語): Alphabets and language-specific information
- Wikipedia(英語): UTF-8(コードポイントごとのバイト数)
- Wikipedia(英語): UTF-16(符号単位とサロゲートペア)
- Wikipedia(英語): UTF-32(固定幅)
- Unicode UAX #29(英語): Unicode text segmentation, grapheme clusters(改訂49)
- X(英語): Counting characters(投稿の長さと重み)
- twitter-text(英語): config/v3.json(Xが使う重みの範囲)
数値と文章の最終確認日:2026年11月10日火曜日。