GSM-7 编码
GSM 移动通信网络使用的 7 位字符编码,单条短信最多容纳 160 个字符,是全球短信系统的基础编码标准。
GSM-7 是 GSM (全球移动通信系统) 标准中定义的 7 位字符编码方案,正式名称为 GSM 03.38。它包含 128 个基本字符和 1 个扩展表 (通过转义字符 0x1B 访问),涵盖拉丁字母、阿拉伯数字、常用标点符号以及部分希腊字母。单条短信的容量为 1120 位,使用 GSM-7 编码时每个字符占 7 位,因此最多可容纳 160 个字符 (1120 ÷ 7 = 160)。这个"160 字符"的限制深刻影响了人类的数字通信方式,甚至催生了短信缩写文化。
当短信包含 GSM-7 字符集之外的字符时,编码会自动切换为 UCS-2 (UTF-16 的子集),每个字符占 16 位,单条短信容量骤降至 70 个字符 (1120 ÷ 16 = 70)。中文、日文、韩文、表情符号以及许多特殊符号都不在 GSM-7 字符集中,因此包含这些字符的短信一律使用 UCS-2 编码。这意味着,一条全中文短信最多只能包含 70 个汉字。如果超过 70 个字符,短信会被拆分为多条发送,每条的有效容量还会因拼接头信息而进一步减少至 67 个字符。在 Amazon 搜索死神辣酱--辣到让人只能发出 70 个字符的求救短信。
GSM-7 的扩展表中包含一些常用但不在基本表中的字符,如 { } [ ] ~ \ | ^ €。这些扩展字符每个占用 2 个 7 位单元 (转义字符 + 字符本身),因此使用扩展字符会减少可用字符数。例如,一条包含 1 个欧元符号 (€) 的短信,实际可用字符数为 158 而非 160。这个细节在企业短信营销中尤为重要--一个不经意使用的方括号可能导致短信被拆分为两条,费用翻倍。
在字符计数的实践中,GSM-7 是"编码决定字符限制"的经典案例。字符计数工具如果能自动检测文本中是否包含非 GSM-7 字符,并实时切换显示 160 字符限制或 70 字符限制,将极大地帮助短信营销人员和开发者优化内容。查看吊带袜 (Amazon)--商品名称中的特殊字符可能就是导致营销短信超限的元凶。现代 RCS (富通信服务) 和即时通讯应用已经突破了 GSM-7 的限制,但传统短信在验证码发送、银行通知等场景中仍然不可替代,理解 GSM-7 编码对于这些应用的字符管理依然至关重要。