您是否曾给客户发送过一条简单的预约提醒,却发现您的 SMS 账单无缘无故翻了一倍?这种现象与**短信编码**(**encodage sms message**)直接相关。这是一个经常被忽视的技术细节,但却会严重影响您的沟通预算。
什么是 SMS 短信编码?
为了对短信编码定义 (sms éfiniton encodage)有一个清晰的认识,我们需要了解移动网络读取不同字符的方式并不相同。编码是一种技术过程,它将您短信中的字母、数字和符号转换为电信运营商可以传输的二进制数据(即 0 和 1)。
从历史上看,蜂窝网络最初是为传输非常轻量的数据而设计的。如今,有两大主流标准支配着短信的发送:
- GSM-7: 标准编码,每个字符使用 7 位(bit)。它允许在单条短信中编写多达 160 个字符。
- UCS-2 (Unicode): 一种更丰富的编码,每个字符使用 16 位,对于非拉丁字母、复杂的特殊字符和表情符号(emojis)是必需的。它将单条短信的长度限制为仅 70 个字符。
GSM-7 vs UCS-2:特殊字符和表情符号的陷阱
这正是小企业主(美发沙龙、诊所、驾校等)面临麻烦的开始。只要出现一个不在 GSM-7 字符集中的字符,就会强制您的整条短信切换为 Unicode 编码。
像 “ç”、“ê” 或 “ë”(尽管在法语中很常见)这样的特殊字符和带重音符号字符的短信编码 (encodage sms caracteres speciaux accents),以及通过 UCS-2 编码发送短信表情符号 (envoyer des emojis par sms encodage ucs2),都会瞬间将您的单条短信字符限制从 160 个降至 70 个。因此,表情符号对短信编码的影响 (impact emoji encodage sms)是立竿见影的:您的短信会被切分为多个部分(段/segments),这会导致在大多数传统服务商那里的发送成本成倍增加。
以下是一个对比表,可以更直观地看清这一区别:
| 编码标准 | 字符限制(1 条短信) | 允许的字符 | 对传统计费的影响 | |
|---|---|---|---|---|
| GSM-7 | 160 个字符 | 基础拉丁字母、数字、空格以及一些常见的重音符号(é, à, è, ù) | 标准资费(1 个额度) | |
| UCS-2 (Unicode) | 70 个字符 | 所有字母表(阿拉伯语、西里尔字母、中文)、表情符号、复杂的重音符号(ç, ê, ï) | 双倍或三倍资费(多个分段) |
Unicode 编码对短信价格的影响
Unicode 编码对短信价格的影响 (impact de l'encodage unicode sur le prix du sms)是 Twilio 或 Plivo 等传统 SMS 网关的第一大财务陷阱。这些平台按短信的“分段(segment)”收费。一个分段在 GSM-7 编码中对应 160 个字符,但只要检测到一个 Unicode 字符,就会降至 70 个字符。
假设您经营一家汽车维修厂,并发送了这条预约提醒:
"Bonjour ! Votre véhicule est prêt. Merci de passer le récupérer avant 18h au garage. À bientôt !"
这条短信包含 107 个字符。如果您直接发送,它将使用标准的 GSM-7 编码(根据网关的不同,带重音的大写字母“À”有时可能会带来问题,但其余都是标准的)。这会消耗您 1 个短信分段。
如果您在末尾添加一个简单的汽车表情符号 🚗 以使信息看起来更友好,短信就会切换为 UCS-2 编码。此时,您的 108 个字符就超过了 Unicode 70 个字符的严格限制。您的短信将被拆分为 2 个分段。在传统运营商那里,仅因为一个表情符号,您就需要为这条短信支付双倍的费用。
为了避免这种意外开支,许多企业都在寻找替代方案。通过 MySMSGate,您可以连接自己的 Android 智能手机来发送短信。我们对每条发送的短信收取 0.02 美元的固定统一费率,无论其长度或编码如何。没有任何隐藏的分段计费。要了解更多关于经济型方案的信息,请参阅我们的指南:适合小微企业的最便宜 SMS API 网关。
开发者:通过 API 发送短信时该选择哪种编码?
如果您正在将短信通知集成到自己的应用程序或管理软件中,就会遇到这个技术问题:通过 API 发送短信时该选择哪种编码 (quel encodage choisir pour envoyer un sms api)?
几乎所有现代 API(包括 MySMSGate 的 API)都接受以 UTF-8 编码的 JSON 格式请求。然而,SMS 网关随后必须将此 UTF-8 流转换为移动网络格式。为了确保最大的兼容性并避免出现乱码(即著名的问号或黑方块),正确配置短信网关的 UTF-8 编码 (configurer encodage utf8 sms gateway)至关重要。
以下是一个简单的 Python 示例,用于通过 MySMSGate API 发送正确编码的短信,而无需担心复杂的拆分问题:
import requests
url = "https://mysmsgate.net/api/v1/send"
headers = {
"Authorization": "Bearer VOTRE_CLE_API",
"Content-Type": "application/json"
}
payload = {
"to": "+33612345678",
"message": "Votre rendez-vous est confirmé pour demain à 14h ! ",
"sim_slot": 1
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())我们的 API 会透明地处理转换。此外,我们的系统内置了发送失败自动退款机制,确保您只需为实际成功发送的短信付费。如需在您自己的服务器上进行完整集成,请阅读我们的教程:如何通过 API 从 Android 手机发送短信。
如何避免短信二次编码?
关于如何避免短信二次编码 (comment eviter sms double encodage),请确保您的代码没有对已经由 HTTP 库处理过的字符串再次应用编码函数(如 urlencode 或 utf8_encode)。发送经过二次编码的数据会导致您的客户收到无法阅读的、包含一连串奇怪符号的乱码短信。
视频短信/彩信预设编码的特殊情况
在移动通信领域,您有时可能会遇到视频短信/彩信预设编码 (preset encodage sms/mms video)这个术语。与文本编码(GSM-7 或 UCS-2)不同,此预设涉及通过彩信(MMS)发送的多媒体文件(视频、动态图片)的压缩和格式化。
移动网络对彩信(MMS)的大小限制非常严格(根据运营商的不同,通常小于 300 KB 或 600 KB)。视频编码预设可以大幅降低视频的分辨率和比特率,以便其能够顺利通过运营商的网关而不会被拦截。如果您的目的仅仅是发送文本通知或业务提醒,则无需担心这些复杂的设置。
关于 SMS 编码的常见问题
以下是关于在发送商业短信时管理编码和特殊字符的最常见问题的解答。
为什么一个简单的法语重音符号会使我的短信价格翻倍?
某些字符如 “ç”(带软音符的 c)、“ê”(带扬抑符的 e)或 “à”(带重音符的 a)不属于标准 GSM-7 字符集。一旦您使用这些字符中的任何一个,您的发送软件就会将整条短信切换为 Unicode (UCS-2) 模式。这样单条短信的限制就会从 160 个字符降至 70 个字符。如果您的文本超过 70 个字符,它就会被拆分为两个分段,从而使传统运营商的发送成本翻倍。
如何在发送前测试我的短信编码?
网上有许多在线短信分段测试工具(通常称为“SMS Length Calculator”)。它们允许您粘贴文本并立即查看是否有隐形字符或表情符号强制切换到 Unicode,以及您的服务商将收取费用的精确分段数。
MySMSGate 如何帮助避免与 Unicode 相关的额外费用?
与按每个分段单独计费的传统 API(如 Twilio、Plivo)不同,MySMSGate 对每条发送的短信收取 0.02 美元的固定统一费率,无论短信长度如何,也不管是否使用了特殊字符或表情符号。您的短信直接通过连接到我们平台的您自己的 Android 智能手机发送,从而消除了不合理的分段费用。
Comments (0)
Be the first to comment!