SMSメッセージ分割数カウンターとは?
このツールは、入力したテキストメッセージがSMSのセグメント(分割)を何通分使うか、どのエンコード方式(GSM-7またはUCS-2/Unicode)で送信されるか、そして次のセグメントが追加されるまであと何文字入力できるかを表示します。通信事業者はセグメント単位で課金するため、画面上では1通に見えるメッセージでも、上限を超えると複数通分の料金がかかることがあります。
使い方
メッセージを貼り付けるか入力し、エンコード方式を選びます。自動判定を選ぶと、すべての文字がGSM-7の文字セットに含まれる場合はGSM-7が、そうでない場合はUCS-2が自動的に選択されます。エンコード方式を手動で固定して、料金がどう変わるかを比較することもできます。
計算式のしくみ
1セグメントで送れる文字数は、GSM-7なら160文字、UCS-2なら70文字です。この上限を超えると、各セグメントに連結用のヘッダーが付くため、1セグメントあたりの容量はGSM-7で153文字、UCS-2で67文字に減ります。セグメント数は ceil(文字数 ÷ 1セグメントあたりの上限) で求められます。
$$\text{Segments} = \begin{cases} 1 & L \le 160 \\[4pt] \left\lceil \dfrac{L}{153} \right\rceil & L > 160 \end{cases} \qquad L = \text{GSM-7 length of }\text{Message}$$
計算例
GSM-7の200文字のメッセージは、1通の上限である160文字を超えるため分割送信になります。\( \lceil 200 \div 153 \rceil = 2 \) セグメントです。合計の容量は \( 2 \times 153 = 306 \) 文字なので、\( 306 - 200 = 106 \) 文字分の余裕があり、これを超えると3セグメント目が必要になります。
よくある質問(FAQ)
なぜ160文字ではなく153文字で分割されるのですか? 分割送信されるメッセージでは、受信側の端末が複数のセグメントを正しく結合できるように、各セグメントのうち7バイトをヘッダー用に確保するためです。
どんな文字を使うとUCS-2になりますか? GSM-7の文字セットに含まれない文字(一般的な絵文字、丸い引用符、多くのアクセント付き文字など)が1つでも含まれると、メッセージ全体がUCS-2に切り替わり、上限が70文字/67文字に減ります。日本語のかな・漢字も含めUCS-2が使われるため、上限が低くなる点に注意してください。
GSM-7の拡張文字は余分にカウントされますか? { } [ ] | ^ ~ \ € といった文字は、エスケープ文字が必要になるため、GSM-7では1文字につき2単位分としてカウントされます。