Как преобразовать строку из текстового поля в байтах? - PullRequest
1 голос
/ 12 июля 2010

Мне нужно преобразовать строку из текстового поля в байты.Как я могу это сделать?

Причина: Текст в текстовом поле будет отправлен по SMS для клиента, и я ограничил текст до 160 символов, но если я добавлю специальные символы, такие как  @ € £ ‰ ¶ ÷ ‰‰ € £ @ это будет больше 256 байт (это размер смс).

Так что мне нужно удалить из 256 преобразованный текств байты и преобразовать результат в обычную длину символов.

Пример:

var charsleft = toChars(256 - toBytes(mystring));

РЕДАКТИРОВАТЬ:
ПРИЧИНАчтобы быть на Javascript: У меня есть строка, говорящая что-то вроде этого "XXX осталось символов"

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Сделай это серверная с языком, который вы предпочитаете. Java / ECMA скрипт действительно плохое место для таких операций. Это уже беспорядок с character encoding, поэтому сделайте себе одолжение и пропустите хлопоты с content-types и прочее. Отправьте строку как UTF8 (например) на ваш сервер и выполните работу там.

0 голосов
/ 12 июля 2010

Какую систему вы используете для отправки SMS с jQuery?Я подозреваю, что это будет через HTTP-запрос, и в этом случае служба должна сделать кодирование для вас.В некоторых случаях есть символы, которые не представлены в наборе символов GSM, а в других случаях символы должны быть представлены как «экранированная пара» байтов.

Документация на службу, которую вы используете, должнабыть в состоянии сообщить вам правильное форматирование для тела SMS.

Например: http://www.bulksms.com/int/docs/eapi/submission/character_encoding/

Полное раскрытие: я работаю в BulkSMS

...