Случалось ли вам отправлять клиентам простое напоминание о встрече и замечать, что счет за SMS вырос вдвое без видимых причин? Это явление напрямую связано с **кодировкой SMS-сообщений** — техническим аспектом, о котором часто забывают, но который может серьезно ударить по вашему бюджету на связь.
Что такое кодировка SMS-сообщения?
Чтобы дать четкое определение кодировки SMS, нужно понять, что мобильные сети читают разные символы по-разному. Кодирование — это технический процесс, который преобразует буквы, цифры и символы вашего сообщения в бинарные данные (нули и единицы), передаваемые телеком-операторами.
Исторически сотовая сеть создавалась для передачи очень легких сообщений. Сегодня отправку SMS регулируют два основных стандарта:
- GSM-7: стандартная кодировка, использующая 7 бит на символ. Она позволяет уместить до 160 символов в одном SMS.
- UCS-2 (Unicode): более продвинутая кодировка, использующая 16 бит на символ. Она необходима для нелатинских алфавитов, сложных специальных символов и эмодзи. При ее использовании лимит одного SMS сокращается всего до 70 символов.
GSM-7 против UCS-2: ловушка специальных символов и эмодзи
Именно здесь начинаются сложности для владельцев малого бизнеса (салонов красоты, медицинских клиник, автошкол). Всего один символ, выходящий за рамки таблицы GSM-7, заставляет всю систему переключить сообщение в режим Unicode.
Использование специальных символов и диакритических знаков в SMS, таких как «ç», «ê» или «ë» (а в случае русского языка — любых букв кириллицы), а также отправка эмодзи через кодировку UCS-2 мгновенно сокращают лимит символов со 160 до 70 на одно сообщение. Влияние эмодзи на кодировку SMS очевидно: ваше сообщение разбивается на несколько частей (сегментов), что умножает стоимость отправки у большинства традиционных провайдеров.
Вот сравнительная таблица для наглядности:
| Стандарт кодирования | Лимит символов (1 SMS) | Разрешенные символы | Влияние на стандартную тарификацию | |
|---|---|---|---|---|
| GSM-7 | 160 символов | Базовый латинский алфавит, цифры, пробелы и некоторые распространенные диакритические знаки (é, à, è, ù) | Стандартный тариф (1 кредит) | |
| UCS-2 (Unicode) | 70 символов | Любые алфавиты (кириллица, арабский, китайский), эмодзи, сложные диакритические знаки (ç, ê, ï) | Двойная или тройная тарификация (несколько сегментов) |
Влияние кодировки Unicode на стоимость SMS
Влияние кодировки Unicode на стоимость SMS — это финансовая ловушка номер один при использовании классических SMS-шлюзов, таких как Twilio или Plivo. Эти платформы тарифицируют сообщения по сегментам. Один сегмент равен 160 символам в GSM-7, но сокращается до 70 символов, как только обнаруживается хотя бы один символ Unicode (включая любые кириллические буквы).
Представьте, что вы управляете автосервисом и отправляете такое напоминание о записи:
"Bonjour ! Votre véhicule est prêt. Merci de passer le récupérer avant 18h au garage. À bientôt !"
Этот текст на латинице содержит 107 символов. Если вы отправляете его в таком виде, используется стандартная кодировка GSM-7 (символ «À» иногда может вызывать проблемы на некоторых шлюзах, но в остальном все стандартно). Это стоит вам 1 сегмент SMS.
Однако, если вы отправляете аналогичное сообщение на русском языке (например: «Здравствуйте! Ваш автомобиль готов. Заберите его, пожалуйста, до 18:00. До встречи!»), оно изначально пишется кириллицей и автоматически кодируется в Unicode (UCS-2). Эти 84 символа на русском языке сразу же превышают лимит в 70 символов и делятся на 2 сегмента! У классического оператора вы заплатите вдвое больше.
Именно во избежание таких неприятных сюрпризов многие компании ищут альтернативы. С помощью MySMSGate вы можете подключить собственный Android-смартфон для отправки сообщений. Мы предлагаем единый фиксированный тариф — 0,02 $ за отправленное SMS, независимо от его длины или кодировки. У нас нет скрытой тарификации за сегменты. Чтобы узнать больше о бюджетных решениях, читайте наше руководство о том, как выбрать самый дешевый SMS-шлюз для малого бизнеса.
Разработчикам: какую кодировку выбрать для отправки SMS через API?
Если вы интегрируете SMS-уведомления в собственное приложение или CRM-систему, возникает технический вопрос: какую кодировку выбрать для отправки SMS через API?
Практически все современные API, включая API MySMSGate, принимают запросы в формате JSON в кодировке UTF-8. Однако затем SMS-шлюз должен преобразовать этот поток UTF-8 для мобильной сети. Чтобы обеспечить максимальную совместимость и избежать появления нечитаемых символов (знаменитых знаков вопроса или черных квадратов), крайне важно правильно настроить кодировку UTF-8 на SMS-шлюзе.
Вот простой пример на Python для отправки корректно закодированного сообщения через API MySMSGate без необходимости беспокоиться о сложном разделении на сегменты:
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 confirmed pour demain à 14h ! ",
"sim_slot": 1
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Наш API берет на себя все процессы конвертации. Кроме того, в нашу систему встроен механизм автоматического возврата средств в случае сбоя доставки, что гарантирует оплату только за реально доставленные сообщения. Для полной интеграции на вашем сервере ознакомьтесь с нашим руководством о том, как отправлять SMS с телефона Android через API.
Как избежать двойного кодирования SMS?
Чтобы избежать двойного кодирования SMS, убедитесь, что ваш код не применяет функции кодирования (такие как urlencode или utf8_encode) к строке, которая уже обрабатывается вашей HTTP-библиотекой. Отправка дважды закодированных данных приводит к тому, что клиенты получают нечитаемые сообщения со странным набором символов («кракозябрами»).
Особый случай: пресеты кодирования видео для SMS/MMS
В сфере мобильной связи вы можете иногда столкнуться с понятием пресет кодирования видео для SMS/MMS. В отличие от кодирования текста (GSM-7 или UCS-2), этот пресет относится к сжатию и форматированию мультимедийных файлов (видео, анимированных изображений), отправляемых через MMS.
Мобильные сети накладывают очень строгие ограничения на размер MMS (часто менее 300 КБ или 600 КБ в зависимости от оператора). Пресет кодирования видео позволяет значительно снизить разрешение и битрейт ролика, чтобы он прошел через шлюз оператора без блокировки. Если ваша цель — отправка исключительно текстовых уведомлений или рабочих напоминаний, вам не придется беспокоиться об этих сложных настройках.
Часто задаваемые вопросы о кодировке SMS
Ниже приведены ответы на самые популярные вопросы о работе с кодировками и специальными символами при отправке бизнес-SMS.
Почему из-за одного спецсимвола или буквы кириллицы стоимость SMS может вырасти вдвое?
Такие символы, как буквы кириллицы, эмодзи или некоторые французские буквы с диакритическими знаками (например, «ç», «ê»), отсутствуют в стандартном алфавите GSM-7. Стоит использовать хотя бы один такой символ, как программа отправки переводит все сообщение в режим Unicode (UCS-2). Лимит символов в одном SMS при этом падает со 160 до 70. Если ваш текст длиннее 70 символов, он делится на два сегмента, что удваивает стоимость отправки у традиционных операторов.
Как протестировать кодировку моих SMS перед отправкой?
Для этого существуют онлайн-калькуляторы длины SMS (часто называемые «SMS Length Calculator»). Вы можете вставить туда свой текст и сразу увидеть, не заставляет ли какой-то невидимый символ или эмодзи переключить кодировку в Unicode, а также узнать точное количество сегментов, за которые спишет плату ваш провайдер.
Как MySMSGate помогает избежать переплат, связанных с Unicode?
В отличие от классических API (Twilio, Plivo), которые берут плату за каждый сегмент отдельно, MySMSGate предлагает единый фиксированный тариф — 0,02 $ за отправленное сообщение, независимо от его длины, наличия спецсимволов или эмодзи. Ваши сообщения отправляются напрямую через ваш Android-смартфон, подключенный к нашей платформе, что полностью избавляет вас от переплат за разделение на сегменты.
Comments (0)
Be the first to comment!