简短回答
当文本超过一个分段(160 个 GSM-7 字符或 70 个 Unicode 字符)时,短信会被拆分。长短信按每段 153 或 67 个字符发送,因为每段带重组头信息。出现一个阿拉伯字母、emoji 或弯引号,整条短信就变成 Unicode。
分段限制是多少?
3GPP TS 23.040 规定每条短信最多承载 140 字节的用户数据。消息更长时,每一段都会加入 6 字节的用户数据头,以便手机把各段重新拼合,这样每段可用的空间就变小了。
| 编码 | 适用字符 | 单条短信 | 长短信每段 |
|---|---|---|---|
| GSM-7 | 基本拉丁字母、数字、常用标点 | 160 个字符 | 153 个字符 |
| UCS-2 | 阿拉伯语、emoji、其他非 GSM 字符 | 70 个字符 | 67 个字符 |
哪些隐藏字符会导致意外拆分?
- 从文字处理软件粘贴来的弯引号、长破折号或不换行空格会强制使用 UCS-2,使上限从 160 降到 70。
- GSM-7 扩展表中的字符,如 € { } [ ] ~ | ^ 和 \,每个算作两个字符。
- emoji 会强制使用 UCS-2,而且大多数占用 70 个位置中的两个。
- 个性化变量会让名字较长的收件人的短信超出限制。
如何避免短信被拆分?
- 把最终文案连同最长的变量值一起粘贴到字符计数器中检查。
- 把智能引号和破折号换成普通符号,以保持 GSM-7 编码。
- 缩短链接,删去冗余词语。
- 将英语和阿拉伯语分成两条短信发送。
- 每次大批量发送前,重新核对分段数。
被拆分的短信仍会作为一条到达吗?
会。在大多数手机上,各段会被重新拼合,显示为一条短信。每一段通常单独计费,也可能有各自的送达回执,所以一条 161 个字符的 GSM-7 短信要按两条短信计费。
