Похоже, вам нужно сначала преобразовать строки в юникоде в шестнадцатеричное.
С http://www.smssolutions.net/tutorials/gsm/sendsmsat/:
Отправка SMS-сообщения в Юникоде
Некоторые модемы также имеют возможность отправлять сообщения Unicode или UCS2 без кодирования PDU. Вы можете отправлять сообщения Unicode, только преобразовав данные Unicode в строку HEX и отправив эту строку модему.
Чтобы проверить, поддерживает ли ваш модем этот режим, просто введите следующую команду:
AT + CSCS =?
Эта команда отображает кодовые страницы, поддерживаемые модемом. Модем ответит так:
+ CSCS: («GSM», «PCCP437», «CUSTOM», «HEX»)
Если эта строка содержит «HEX» или «UCS2», Unicode, похоже, поддерживается. Чтобы указать, что вы будете использовать строку HEX для отправки сообщения, установите кодовую страницу на «HEX» или «UCS2» в зависимости от ответа модема. В нашем примере мы установим модем на «HEX»:
AT + CSCS = "HEX"
Далее мы должны указать правильную DCS (схему кодирования данных) для сообщений Unicode, которая равна 0x08. Мы можем установить это значение, изменив четвертый параметр команды AT + CSMP на «8»:
AT + CSMP = 1 167,0,8
Модем теперь готов отправлять сообщения в формате Unicode. Сейчас самое время отправить собственное сообщение:
AT + CMGS = "+ 31638740161"
Замените вышеуказанный номер телефона своим номером мобильного телефона. Модем ответит:
>
Единственное, что вам нужно запрограммировать самостоятельно, - это простая процедура, которая преобразует строку Unicode в шестнадцатеричную строку, например так:
مرحبا
То, что по-арабски «Hello», будет преобразовано так:
"06450631062D06280627"
Вы можете отправить эту шестнадцатеричную строку на модем:
06450631062D06280627
Через несколько секунд модем ответит идентификатором сообщения, сообщив, что сообщение было отправлено правильно:
+ CMGS: 63
Сообщение придет на мобильный телефон в ближайшее время.