请输入
菜单

国际短信计费规则【产研】

1. 计费长度计算流程

  1. 获取短信内容的字节长度编码类型(GSM7 或 UCS2)。
  2. 若目标国家为特殊国家(如马来西亚,国码 60),需额外加上不可见字符长度
    • GSM7 编码:直接加不可见字符长度(单位:字节)。
    • UCS2 编码:不可见字符长度 × 2(因 UCS2 为双字节编码)。
  3. 根据编码类型按以下规则分段计费:

GSM7 编码计费规则

  • 单条上限:160 字节
    • ≤ 160 字节:计 1 条
    • 160 字节:按 154 字节/条 分段(预留 6 字节用于拆分标识),向上取整

UCS2 编码计费规则

  • 单条上限:140 字节
    • ≤ 140 字节:计 1 条
    • 140 字节:按 134 字节/条 分段(预留 6 字节用于拆分标识),向上取整

总结
先按编码计算原始字节数 → 加上特殊国家附加长度 → 按单条上限分段(超长时每段预留 6 字节)→ 向上取整得出计费条数。


2. 编码与字符说明

GSM7 编码

  • 仅包含 GSM7 基础字符集(参考 GSM 03.38 标准
  • 基础字符:每个占 1 字符
  • 扩展字符(如 { } [ ] ~ | \ €):每个占 2 字符
  • 单条短信最多 160 字符(含签名)
  • 超长时按 154 字符/条 计费
GSM 7-bit Basic Character Set

📎 支持字符参考:GSM 7-bit Default Alphabet

非 GSM7 编码(如中文、日文、韩文等)

  • 自动使用 UCS2(UTF-16)编码
  • 每个字符固定占 2 字节
  • 单条短信最多 70 字符(含签名)
  • 超长时按 67 字符/条 计费(即 134 字节 ÷ 2)

3. 特殊国家:马来西亚(国码 60)

  • 所有发往马来西亚的短信必须在内容前自动添加不可见头:RM 0.00
    • 作用:告知接收方短信免费;缺失可能导致截断或发送失败
  • 该头占用:
    • GSM7:7 个字符(7 字节)
    • UCS2:7 个字符 × 2 = 14 字节
  • 运营商差异:
    • Digi:不支持长短信合并,会将多条拆分为独立短信
    • 其他运营商:支持长短信(自动拼接)

4. 计费样例

短信内容 国家 编码 原始长度 计费长度 计费条数
12345{} 非马来 GSM7 5×1 + 2×2 = 9 9 1
12345{} 马来 GSM7 9 + 7 = 16 16 1
你的验证码是:123456 非马来 UCS2 13 字符 × 2 = 26 字节 26 1
你的验证码是:123456 马来 UCS2 26 + 14 = 40 字节 40 1
中文...(共71字符) 非马来 UCS2 71 × 2 = 142 字节 142 2(142 ÷ 134 ≈ 1.06 → 向上取整)
中文...(共64字符) 马来 UCS2 (64×2) + 14 = 142 字节 142 2
超长中文...(共140字符) 非马来 UCS2 280 字节 280 3(280 ÷ 134 ≈ 2.09 → 向上取整)

💡 注意:长短信分片时,每片实际可用容量为 134 字节(UCS2)154 字节(GSM7)


5. 术语说明

  • GSM-7:一种 7 位字符编码标准,用于 GSM 网络短信。
    由于 SMS 传输 140 字节(1120 位),GSM-7 可容纳 160 个字符(1120 ÷ 7 = 160)。
  • UCS2:统一码双字节编码(UTF-16 子集),每个字符固定占 2 字节,短信最大 70 字符。
  • 长短信(Concatenated SMS):超过单条容量时,自动拆分为多条并携带拼接标识,接收端合并显示。

上一个
名词解释Demo【等待拆分出去】
下一个
客户端操作指引【NOC-Joey】
最近修改: 2026-01-16Powered by