Остерегайтесь того, что SMS является более сложным, чем вы, похоже, указываете.
Стандартное "160-символьное" SMS использует странную 7-битную кодировку , которая охватывает большинство ASCII, некоторые европейские акценты,Разные символы, такие как €, некоторые заглавные греческие буквы (те, которые не похожи на латинские символы).
Если ваше сообщение использует другие символы, его можно вместо этого закодировать как Unicode, используя UCS-2 (например, UTF)-16, но только BMP), не более 70 символов.На самом деле, спецификация говорит UCS-2, но эмодзи (не-BMP Unicode) можно отправлять в SMS, так что подразумевается, что используется UTF-16 , и в этом случае каждый смайлик должен«использовать» 2 символа из общего числа 70.
Но некоторые языки могут использовать «таблицы смены национальных языков» , которые используют альтернативное 7-битное кодирование.В первую очередь турецкий, но также испанский, португальский и десять индийских субконтинентальных языков.Это относительно новые дополнения к стандарту.
Даже в 7-битной кодировке несколько символов «экранированы», что означает, что они «используют» 2 символа.В стандартной 7-битной кодировке это: {}[]\|^~€
.
Если ваше сообщение превышает 160 символов, оно может использовать «сцепленное SMS», но затем к каждому сообщению добавляется небольшой заголовок, то есть каждыйВ сегменте есть место только для 153 символов.Существуют две разные версии этого заголовка разных размеров, поэтому это может быть не 153 символа, а 152 (из памяти).Точно так же для соединенных SMS Unicode маленький заголовок составляет 67 символов на сегмент.
Удачи вам во всем этом!