Перейти к содержанию

    

SIM800 кодировка русских СМС

Подскажите по кодировке русских СМС в SIM800H

 

Настройки модуля

AT+CMGF=1

AT+CSCS=UCS2

 

При получении СМС с английскими "АААА"

Модуль выдаёт строку 0x30 0x30 0x34 0x31 .....

т.е. код символа 0x41 = английское "А" всё верно.

 

При получении СМС с русскими "АААА"

Модуль выдаёт строку 0x30 0x34 0x31 0x30 .....

т.е. код символа 0x410 .

Вопрос 1: почему не 0xC0 , как написано в таблице ASCII ? Как декодировать эти 0x410 ?

Вопрос 2: я правильно подхожу к приёму-передаче русских СМС ?

Вопрос 3: с русскими СМС вообще стоит связываться в серийном изделии ?

 

 

Заранее спасибо за информацию !

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Изучите PDU и забудьте вообще про текстовый режим. Один раз научившись, избавитесь от всех разночтений у операторов.

SMS.htm

SMS_in_Pdu_mode.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо!!!

А в ASCII модуль то же самое выдавать не может ?

А то у меня Keil, в котором я пишу, перекодирует русский текст как ASCII

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно и в ASCII - только на одном операторе будет читаться, а на другом можно и на кракозябры нарваться.

Если он вместо русского сделает кривую транслитерацию....

 

Сделайте поиск по форуму - PDU*

Эта тема пару раз в год обязательно всплывает. Если не c SMS, то с USSD. :)

Уже давно разъяснили что к чему и почему.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вопрос 3: с русскими СМС вообще стоит связываться в серийном изделии ?

Внутри страны (любой) национальные кодировки СМС (в Unicode), как правило, работают.

А вот при отправке СМС через границы еще не факт, что все дойдет в читабельном виде.

Сталкивался с тем, что СМС на русском из России в Европу доходили в виде знаков вопросов (и в PDU были только одни коды знака вопроса). 100% зашифрованный текст, без возможностей дешифровки :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>>>Сталкивался с тем, что СМС на русском из России в Европу доходили в виде знаков вопросов (и в PDU были только одни коды знака вопроса).

 

Тоже попадалось - тогда или на нормальном английском писать или транслит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверно я идиот. Объясните пожалуйста:

Как появляется код 0x41 английской "A" понимаю, координата по вертикале 0x40, по горизонтали 0x01

Но как появляется код 0x0410 у русской "А" ? По вертикали 0xB0 , по горизонтали 0x00 , должен быть код B0...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Как появляется код 0x41 английской "A" понимаю, координата по вертикале 0x40, по горизонтали 0x01

Но как появляется код 0x0410 у русской "А" ? По вертикали 0xB0 , по горизонтали 0x00 , должен быть код B0...

Это просто WLESS.RU подсунул обрезанную картинку, которая запутает кого угодно.

Хотя сама это котовасия с кодировками кого хочешь сведет с ума :biggrin:

 

На самом деле, на картинке приведена русская кодировка ISO-8859-5, которая к GSM никакого отношения не имеет.

Просто на ней есть верхняя половина с ASCII кодами, которые входят в 7-и битные кодировки "GSM" и "IRA",

и возле символов указаны 16-и битные коды кодировки "UCS2"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Хотя сама это котовасия с кодировками кого хочешь сведет с ума :biggrin:

Правильно ли я понимаю терминологию:

1)"таблица символов юникод" и UCS2 это одно и то же

2) SIM800, в текстовом режиме, выдаёт в кодировке UCS2 т.е. в юникоде

3) Коды ASCII для русских символов отличаются от UCS2

 

Верно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то неплохо бы хоть Википедию на русском прочесть. Я конечно дико извиняюсь, но ваши посты всегда отличает хроническое нежелание пользоваться Гуглом :rolleyes:

 

1)"таблица символов юникод" и UCS2 это одно и то же

Почти. UCS2 это только 16 бит. А юникод (UTF) включает еще и 4-х байтные.

 

2) SIM800, в текстовом режиме, выдаёт в кодировке UCS2 т.е. в юникоде

С текстовым режимом не работал, не скажу. В PDU режиме, в чем пришло или как сформировали, так и будет.

 

3) Коды ASCII для русских символов отличаются от UCS2

Русских 8-и битных кодировок много. В GSM они не применяются. Если не английские символы, то только юникод.

Именно поэтому русская СМС до 70 символов, а английская до 140.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы команду

AT+CSMP=17,167,0,25 использовали?

Я входящими смс не пользуюсь, а вот при отправке делаю так.

AT+CSMP=17,167,0,25

AT+CMGF=1

AT+CSCS=\"UCS2\"

AT+CMGS="телефон в юникоде"

>текст в юникоде.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация