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