Изглежда, че първо трябва да преобразувате своите Unicode низове в шестнадесетични.
От http://www.smssolutions.net/tutorials/gsm/sendsmsat/ :
Изпращане на SMS съобщение с Unicode
Някои модеми също имат способността да изпращат 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 низа в шестнадесетичен низ като този: مرحبا
Което е „Здравей“ на арабски ще бъде преобразувано по следния начин: „06450631062D06280627“
Можете да изпратите този шестнадесетичен низ към модема: 06450631062D06280627
След няколко секунди модемът ще отговори с ИД на съобщението, което показва, че съобщението е изпратено правилно: +CMGS: 63
Съобщението ще пристигне на мобилния телефон скоро.
person
BrokenGlass
schedule
22.11.2010