# GSM-7 与 Unicode：消息长度的真实计算方式

> 为什么一条消息只需一个分段，另一条却要三个；哪些字符会切换编码；拼接如何工作；以及如何写成单分段消息。

更新日期：2026-08-15。难度：中级。作者：SMSMeteor。

## 要点

- 一个 GSM-7 以外的字符会切换整条消息。
- 拼接分段可容纳 153 或 67 个字符。
- 弯引号和表情符号是常见原因。
- 非拉丁文字始终使用 Unicode，应提前规划。

## 两套字符集

一条 SMS 可承载 140 字节。GSM-7 字符集每个字符占七位，可容纳 160 个字符（拼接短信每段 153 个字符）；Unicode（UCS-2）每个字符占十六位，可容纳 70 个字符（拼接短信每段 67 个字符）。整条消息只能使用一种字符集：只要出现一个 GSM-7 以外的字符，所有字符都会按 Unicode 容量计费。

## 分段与拼接

较长文本会被拆成多个分段，再由手机重新组合。每个分段需拿出六个字节存放“第 2/3 部分”之类的标头，因此每段容量会降至 153 和 67 个字符。费用按分段收取，最多 每条消息最多 6 个分段 个。编辑器和 API 响应都会在发送前显示分段数，因此价格不会令人意外。

## 哪些字符会切换编码

GSM-7 包含基本拉丁字母、数字、常用标点，以及西欧语言使用的少量变音字符。它不包含弯引号、长破折号、大多数表情符号，也不包含某些扩展字母。任何一个此类字符都会把消息切换为 Unicode。最常见的意外切换，是从文字处理软件粘贴进来的弯撇号。

## 编写单分段消息

- 使用直引号和普通连字符。

- 事务性消息不要使用表情符号；它们会让容量减半，却不会提升送达效果。

- 链接应简短且稳定；30 个字符的跟踪链接会占去一个分段的五分之一。

- 使用真实数据预览：姓名等变量可能让最长的数据行超出限制，即使模板本身没有超出。

## 非拉丁文字

阿拉伯文、西里尔文、希腊文、希伯来文、天城文、泰文、中文、日文和韩文始终使用 Unicode。这不是需要修复的问题，而是文字本身的成本：每段 70 个字符（拼接短信每段 67 个字符）。验证码、提醒和简短确认无论使用何种语言都能放进一个分段；营销文案应有意写成两个分段，避免无意间写成一个半分段。[国家或地区页面](https://smsmeteor.com/zh/coverage)会说明各目的地预计使用的编码。

---
来源：[HTML 页面](https://smsmeteor.com/zh/guides/gsm7-vs-unicode)。由 SMSMeteor 使用与页面相同的数据生成。[全站摘要](https://smsmeteor.com/zh/llms.txt)
