ブログ/2026年5月15日·9 分で読める

SMS文字数制限:GSM-7 vs UCS-2 完全ガイド2026

1通のSMSは、GSM-7エンコードで160文字、UCS-2エンコードで70文字です。 どちらのエンコーディングがキャリアによって選ばれるかは、メッセージの内容によって自動的に決まります。すべての文字がGSM-7のデフォルトアルファベットにあれば、160文字すべてが使えます。1文字でもその外にあれば、メッセージ全体がUCS-2に再エンコードされ、上限は70文字に落ちます。

160/70を超えると、メッセージは連結セグメントに分割されます。各セグメントは受信端末がメッセージを再構築できるよう6バイトのヘッダーを運びます。そのため、マルチセグメントSMSは1セグメントあたりGSM-7で153文字、UCS-2で67文字しか使えません。キャリアとSMS APIはメッセージ単位ではなくセグメント単位で課金するため、200文字の送信に絵文字1つを加えると、1セグメントが4セグメントに静かに変わってしまいます。

SMS文字数の概要表

シナリオ上限備考
単一SMS、GSM-7160文字プレーンラテン文字、絵文字なし
単一SMS、UCS-270文字GSM-7外の文字で強制
連結セグメントGSM-7153文字UDH 6バイトが7文字を消費
連結セグメントUCS-267文字UDHが3文字を消費
絵文字UCS-2 2単位全体をUCS-2に強制
iMessage / RCS / WhatsApp20,000+文字SMSではない。別ルール

日本語SMSの注意点

日本語(ひらがな・カタカナ・漢字)はすべてGSM-7アルファベット外のため、日本語SMSは常にUCS-2エンコーディングが使われます。つまり、日本語SMSの実質的な上限は1セグメントあたり70文字、連結セグメントでは67文字になります。

実用例:

  • 70文字以内:1セグメントで送信
  • 71〜134文字:2セグメント(67+67)
  • 135〜201文字:3セグメント(67+67+67)

GSM-7エンコーディング:160文字の標準

GSM-7はGSM 03.38規格で定義されたデフォルトのSMSエンコーディングです。1文字あたり7ビットでパックされており、これにより160文字が1,120ビット(140バイト)のSMSペイロードに収まります。アルファベットには128の基本文字と10文字の拡張表があります。これら138文字以外はUCS-2への切り替えを強制します。

基本アルファベットは、アクセントなしのラテン文字(A-Z、a-z)、数字0-9、一般的な句読点、スペース、改行、リターン、ヨーロッパのアクセント付き文字の小さなセット、科学表記用のギリシャ大文字、いくつかの通貨・記号文字をカバーします。

UCS-2エンコーディング:70文字に強制される時

UCS-2は16ビット(2バイト)のUnicodeエンコーディングです。同じ140バイトのSMSペイロードに1セグメントあたり70 UCS-2コードユニット、連結後は67が入ります。キャリアは、メッセージ内の1文字でもGSM-7外にあるとUCS-2に切り替えます。部分的な変換はありません。1文字が全体の送信を反転させます。

絵文字の隠れたトラップ

ほとんどの絵文字はUCS-2でサロゲートペアとしてエンコードされ、各絵文字が70文字のうち2文字を消費します。スキントーン変種や複合絵文字(家族、国旗、職業)は4以上消費する可能性があります。

連結SMS:なぜセグメントが153/67文字なのか

メッセージが単一SMS上限を超えると、セグメントに分割され、各セグメントは別個のSMSとして無線で送信されます。受信側の電話が正しい順序で再結合できるよう、各セグメントは参照番号、合計セグメント数、そのセグメントの位置を含むUser Data Header(UDH)を運びます。

UDHは6バイト長です。GSM-7では7文字分のペイロードに相当し、セグメントあたりの容量を160から153文字に減らします。UCS-2では同じ6バイトが3 UCS-2コードユニットで、上限を70から67文字に下げます。

マルチセグメントSMSの実コスト

ほぼすべての商用SMS APIはメッセージ単位ではなくセグメント単位で課金します。料金計算は単純です:総コスト = メッセージあたりセグメント数 × 受信者数 × セグメント単価。高くつくのはエンコーディングのトラップです。スマートクォートで書かれたキャンペーンは、静かにセグメント数と請求額を倍増させます。

UCS-2を強制する一般的な文字

  • スマートクォート(カールクォート): Word、Pages、macOSは'と"を自動的にカールバージョン(“ ” ‘ ’)に置換します。4つすべてがUCS-2を強制します。送信前にSMSコピーを常にプレーンテキストステップを通してください。
  • エムダッシュとエンダッシュ: エムダッシュもエンダッシュもUCS-2を強制します。ASCIIハイフンを使うか、文を2つに分けてください。
  • 三点リーダー文字: 単一文字の…はUCS-2です。3つのASCIIドット"..."はGSM-7で見た目も同じです。
  • すべての絵文字: すべての絵文字がUCS-2を強制し、ほとんどが70文字のうち2文字を消費します。
  • 非ラテン文字: キリル、ギリシャ小文字、アラビア、ヘブライ、タイ、デーバナーガリ、中国語、日本語、韓国語、すべてUCS-2です。
  • GSM-7外のアクセント付き文字: 一般的なヨーロッパのアクセント付き文字のほとんどはGSM-7にありますが、多くはありません(Ş、Č、Ł、ě、特定形のøなど)。

A2P 10DLC:ビジネスSMSルール

A2P 10DLC(Application-to-Person、10桁ロングコード)は、企業がショートコードではなく通常の10桁電話番号からSMSを送信できる米国のフレームワークです。文字ルールは同じ160/70/153/67で、違いはコンプライアンス、スループット、価格です。

iMessage / RCS / WhatsApp:制限が適用されない場合

  • iMessage: Appleのサービスはソフト制限が約20,000文字。GSM-7/UCS-2の区別なし、セグメント課金なし。
  • RCS(Rich Communication Services): GSMA支援のSMS後継。固定文字制限なし(通常8,000〜20,000)。AndroidとiOS 18+で広くサポート。
  • WhatsApp: 1メッセージ65,536文字、セグメンテーションなし、エンコーディングルールなし。
  • Telegram、Signal、Messenger: 通常使用ではすべて事実上無制限(4,000〜20,000+文字/メッセージ)。

SMSコストを削減する実践的なヒント

  • プレーンASCIIを使う。 送信前にスマートクォート、ファンシーダッシュ、三点リーダー文字を取り除きます。
  • 絵文字はクリックを稼ぐ場合だけ。 すべての絵文字がUCS-2を強制し、最低2文字消費します。
  • プロモーションSMSは160文字以下に。 最良のコスト最適化は1 GSM-7セグメントに収めることです。
  • リンクを短縮。 UTMパラメータ付きのhttps URLは1つで70+文字を消費します。
  • 送信前にカウント。 エンコーディングを検出してセグメントを表示するカウンターでキャンペーンを確認します。 文字数カウンター を使ってください。

SMSメッセージの長さとセグメント数を瞬時に確認。

文字数カウンターを開く

関連ガイド

Frequently Asked Questions

GSM-7(プレーンなラテン文字用の7ビットアルファベット)でエンコードした場合、1通のSMSは160文字までです。メッセージにそのアルファベット外の文字(ほとんどの絵文字、スマートクォート、アクセント付き文字、キリル文字、CJKなど)が含まれると、キャリアはUCS-2(16ビットUnicode)に切り替え、1セグメントの上限は70文字に下がります。

GSM-7で160文字、UCS-2で70文字を超えると、メッセージは連結セグメントに分割されます。各セグメントは受信端末がパーツを再結合できるよう6バイトのUser Data Header(UDH)を運びます。そのため、連結セグメントは160/70ではなくGSM-7で153文字、UCS-2で67文字になります。

見た目は1文字ですが、すべての絵文字はメッセージ全体をUCS-2エンコーディングに強制します。ほとんどの絵文字は2つのUCS-2コードユニット(サロゲートペア)としてカウントされるため、1つの絵文字で70文字のうち4文字を消費します。100文字のGSMメッセージに絵文字を1つ追加すると、1セグメントの送信が2セグメントに変わることがあります。

GSM-7は約128の基本文字と10の拡張文字を持つ7ビットエンコーディングで、プレーンなラテン文字SMS向けに最適化されています。UCS-2はメッセージにGSM-7アルファベット外の文字が含まれる場合に使われる16ビットUnicodeエンコーディングです。GSM-7は1セグメントに160文字、UCS-2は70文字入ります。

ほぼすべてのSMS APIとキャリアはメッセージ単位ではなくセグメント単位で課金します。320文字のGSMメッセージは3セグメント(153+153+14)として課金されます。絵文字1つを含む71文字のメッセージも、絵文字がUCS-2を強制し70文字を超えるため2セグメントです。Twilio米国向け送信は1セグメントあたり約$0.0079、国際レートは$0.05から$0.50以上まで変動します。

iMessage、RCS、WhatsAppはSMSではありません。データ経由で動作し、160/70のSMSパイプを使わず、実用上は数万文字(iMessageは約20,000)の制限です。GSM-7/UCS-2ルールはメッセージがSMSにフォールバックする場合のみ適用されます。

すべての絵文字、Wordやmacが自動置換するカール/スマートクォート、エムダッシュとエンダッシュ、三点リーダー文字、GSM拡張表外のアクセント付き文字、そしてキリル、ギリシャ、アラビア、ヘブライ、CJKのすべての文字です。200文字のメッセージに1つでもこれらがあると、セグメントあたりの上限は67に落ち、コストが倍増する可能性があります。

ネイティブSMSでは不可能です。160/70の制限はGSM規格に組み込まれています。長いコンテンツを送る必要がある場合、選択肢は:(1) マルチセグメント課金を受け入れる、(2) ホスティングされたページにリンクする、(3) 実質的に文字数制限のないiMessage、RCS、WhatsApp Businessなどのデータベースチャネルに移行する、です。