01计算方式
三个数字决定一条短信的费用。
编码、按该编码计算的长度,以及每段的容量。只要有一个字符不在 GSM-7 中,这三个数字都会改变。
-
GSM-7:160 个字符
拉丁字母、数字和常用标点,每个字符 7 位:单条 160 个字符,拆分后每段 153 个字符。
-
Unicode:70 个字符
其他所有字符,包括中文、表情符号和弯引号,每个字符 16 位:单条 70 个字符,每段 67 个字符。中文短信始终使用 Unicode。
-
分段:最多 6 段
长内容会以多条短信发送,再在手机上拼接,每段单独计费。SMSMeteor 每条最多 6 段:918 个 GSM-7 字符或 402 个 Unicode 字符。
| 编码 | 1 条 | 2 段 | 3 段 | 4 段 | 5 段 | 6 段 |
|---|---|---|---|---|---|---|
| GSM-7 | 160 | 306 | 459 | 612 | 765 | 918 |
| Unicode (UCS-2) | 70 | 134 | 201 | 268 | 335 | 402 |
每种分段数可容纳的最多字符数。每段带有 6 字节的拼接头,所以每段只能容纳 153 和 67 个字符,而不是 160 和 70 个。
02参考
GSM-7 字符表:全部 128 个位置。
表中每个字符占一个位置,扩展表中的十个字符占两个位置。两个表中都没有的字符会让整条短信改用 Unicode。
| 低位 | 0x0_ | 0x1_ | 0x2_ | 0x3_ | 0x4_ | 0x5_ | 0x6_ | 0x7_ |
|---|---|---|---|---|---|---|---|---|
| _0 | @ | Δ | SP | 0 | ¡ | P | ¿ | p |
| _1 | £ | _ | ! | 1 | A | Q | a | q |
| _2 | $ | Φ | " | 2 | B | R | b | r |
| _3 | ¥ | Γ | # | 3 | C | S | c | s |
| _4 | è | Λ | ¤ | 4 | D | T | d | t |
| _5 | é | Ω | % | 5 | E | U | e | u |
| _6 | ù | Π | & | 6 | F | V | f | v |
| _7 | ì | Ψ | ' | 7 | G | W | g | w |
| _8 | ò | Σ | ( | 8 | H | X | h | x |
| _9 | Ç | Θ | ) | 9 | I | Y | i | y |
| _A | LF | Ξ | * | : | J | Z | j | z |
| _B | Ø | ESC | + | ; | K | Ä | k | ä |
| _C | ø | Æ | , | < | L | Ö | l | ö |
| _D | CR | æ | - | = | M | Ñ | m | ñ |
| _E | Å | ß | . | > | N | Ü | n | ü |
| _F | å | É | / | ? | O | § | o | à |
扩展表:每个字符占两个位置
- FFESC 0x0A
- ^ESC 0x14
- {ESC 0x28
- }ESC 0x29
- \ESC 0x2F
- [ESC 0x3C
- ~ESC 0x3D
- ]ESC 0x3E
- |ESC 0x40
- €ESC 0x65
LF 和 CR 为换行,SP 为空格,ESC 用于进入扩展表,FF 是手机不会显示的换页符。标准中还有土耳其语、西班牙语和葡萄牙语的国家锁定移位表,但大多数国际线路不使用。GSM-7 中没有中文字符。
03常见陷阱
悄悄让短信改用 Unicode 的字符。
中文内容始终使用 Unicode;英文内容中的这些字符大多来自文字处理软件、会自动美化标点的手机,以及从网页复制的文字。计算器会逐一标出,并在可能时给出普通字符。
| 字符 | 是什么 | 从哪里来 | 改用 |
|---|---|---|---|
| 中文 汉字 | 中文、日文、韩文 | 任何中文内容 | 无法替换:始终按 Unicode 计算 |
| , 。 : | 全角标点 | 中文输入法 | 英文内容中改用半角 , . : |
| ’ ‘ | 弯单引号 | 文字处理软件、手机自动更正 | ' |
| “ ” | 弯双引号 | 同上,以及大多数网页 | " |
| – — | 短破折号与长破折号 | 自动更正把 " - " 变成破折号 | - |
| … | 省略号 | 自动更正,一个字符代替三个点 | ... |
| 不可见 | 不换行空格与窄空格 | 从网页、PDF 和表格复制 | 普通空格 |
| 不可见 | 零宽字符 | 聊天软件、HTML 编辑器、CMS | 删除即可 |
| 😀 👍 📦 | 表情符号 | 手机、营销模板 | 改用文字,或按 Unicode 预算 |
| á ç ł ş | GSM-7 之外的带音标字母 | 欧洲语言、土耳其语 | 去掉音标,或接受 Unicode |
04示例
一个字符对账单的影响。
同一条订座提醒:英文版相差一个引号或一个表情符号,再看中文版在 70 字上下的变化。费用按今天美国的费率 $0.0084/段计算。
Hi Sam, your table for 4 at Luigi's is booked for Friday at 8:30 pm. Reply 1 to confirm or 2 to cancel. Questions? Call 020 7946 0321. See you soon!
估算整个群发任务| 版本 | 编码 | 字符数 | 分段 | 发送 10,000 条到美国 |
|---|---|---|---|---|
| 英文原文,直引号 (') | GSM-7 | 148 | 1 | $84.00 |
| 改用弯引号 (’) | Unicode | 148 | 3 | $252.00 |
| 末尾加一个表情符号 | Unicode | 151 | 3 | $252.00 |
| 同一条提醒的中文版 | Unicode | 43 | 1 | $84.00 |
| 中文版再加一句 | Unicode | 71 | 2 | $168.00 |
05常见问题解答
字数计算常见问题。
一条短信能写多少字?
GSM-7(拉丁字母、数字和常用标点组成的基本字符集)单条最多 160 个字符,Unicode 单条 70 个字符。中文内容始终使用 Unicode,所以一条中文短信最多 70 个字。超长内容会拆分为多段,GSM-7 每段 153 个字符,Unicode 每段 67 个字符,每段都按一条短信计费。SMSMeteor 每条最多 6 段,即 918 个 GSM-7 字符或 402 个 Unicode 字符。
为什么 150 个字符的短信要按三条计费?
因为其中至少有一个字符不在 GSM-7 中,例如中文、弯引号、破折号或表情符号,整条短信于是改用 Unicode:单条 70 个字符,长短信每段 67 个字符。150 个字符就是三段。如果是英文内容,换掉那个字符,同样的内容就能放进一条 160 字符的短信。
中文短信的长短信怎么计费?
70 个字以内是一条;超过 70 个字时按每段 67 个字拆分,每段单独计费:71 到 134 个字是两段,135 到 201 个字是三段。标点和空格也计入字数。
表情符号算一个字符吗?
不算。大多数表情符号占两个 Unicode 单位,肤色、旗帜和家庭类表情占四个或更多。而且它们会让整条短信改用 Unicode。
GSM-7 中哪些字符按两个计算?
扩展表中的十个字符:€ [ ] { } ^ ~ | \ 和换页符。每个占两个位置(转义码加字符本身),但短信仍保持 GSM-7。
空格和换行计入字数吗?
计入。每个空格和每个换行在 GSM-7 中算一个字符,在 Unicode 中算一个单位,与文字相同。
SMSMeteor 会修改我的内容来减少分段吗?
不会。API 从不改写短信:对每条接受的短信,它都会返回编码和分段数。本工具提供的替换只是建议,由您在发送前自行决定是否采用。
我输入的内容会被发送到别处吗?
不会。计算器在本页面、在您的浏览器中运行。内容不会发送给 SMSMeteor,不会被记录,也不会被保存。