Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM800 кодировка русских СМС
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
MiklPolikov
Подскажите по кодировке русских СМС в SIM800H

Настройки модуля
AT+CMGF=1
AT+CSCS=UCS2

При получении СМС с английскими "АААА"
Модуль выдаёт строку 0x30 0x30 0x34 0x31 .....
т.е. код символа 0x41 = английское "А" всё верно.

При получении СМС с русскими "АААА"
Модуль выдаёт строку 0x30 0x34 0x31 0x30 .....
т.е. код символа 0x410 .
Вопрос 1: почему не 0xC0 , как написано в таблице ASCII ? Как декодировать эти 0x410 ?
Вопрос 2: я правильно подхожу к приёму-передаче русских СМС ?
Вопрос 3: с русскими СМС вообще стоит связываться в серийном изделии ?


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


CADiLO
Изучите PDU и забудьте вообще про текстовый режим. Один раз научившись, избавитесь от всех разночтений у операторов.
MiklPolikov
Спасибо!!!
А в ASCII модуль то же самое выдавать не может ?
А то у меня Keil, в котором я пишу, перекодирует русский текст как ASCII
CADiLO
Можно и в ASCII - только на одном операторе будет читаться, а на другом можно и на кракозябры нарваться.
Если он вместо русского сделает кривую транслитерацию....

Сделайте поиск по форуму - PDU*
Эта тема пару раз в год обязательно всплывает. Если не c SMS, то с USSD. sm.gif
Уже давно разъяснили что к чему и почему.
Baser
Цитата(MiklPolikov @ Jan 24 2018, 15:30) *
Вопрос 3: с русскими СМС вообще стоит связываться в серийном изделии ?

Внутри страны (любой) национальные кодировки СМС (в Unicode), как правило, работают.
А вот при отправке СМС через границы еще не факт, что все дойдет в читабельном виде.
Сталкивался с тем, что СМС на русском из России в Европу доходили в виде знаков вопросов (и в PDU были только одни коды знака вопроса). 100% зашифрованный текст, без возможностей дешифровки biggrin.gif
CADiLO
>>>>Сталкивался с тем, что СМС на русском из России в Европу доходили в виде знаков вопросов (и в PDU были только одни коды знака вопроса).

Тоже попадалось - тогда или на нормальном английском писать или транслит.
MiklPolikov
Наверно я идиот. Объясните пожалуйста:
Как появляется код 0x41 английской "A" понимаю, координата по вертикале 0x40, по горизонтали 0x01
Но как появляется код 0x0410 у русской "А" ? По вертикали 0xB0 , по горизонтали 0x00 , должен быть код B0...
Владивольт
Цитата(MiklPolikov @ Jan 25 2018, 23:32) *
Но как появляется код 0x0410 у русской "А" ?

https://unicode-table.com/ru/#0410
Baser
Цитата(MiklPolikov @ Jan 25 2018, 22:32) *
Как появляется код 0x41 английской "A" понимаю, координата по вертикале 0x40, по горизонтали 0x01
Но как появляется код 0x0410 у русской "А" ? По вертикали 0xB0 , по горизонтали 0x00 , должен быть код B0...

Это просто WLESS.RU подсунул обрезанную картинку, которая запутает кого угодно.
Хотя сама это котовасия с кодировками кого хочешь сведет с ума biggrin.gif

На самом деле, на картинке приведена русская кодировка ISO-8859-5, которая к GSM никакого отношения не имеет.
Просто на ней есть верхняя половина с ASCII кодами, которые входят в 7-и битные кодировки "GSM" и "IRA",
и возле символов указаны 16-и битные коды кодировки "UCS2"
MiklPolikov
Цитата(Baser @ Jan 26 2018, 00:31) *
Хотя сама это котовасия с кодировками кого хочешь сведет с ума biggrin.gif

Правильно ли я понимаю терминологию:
1)"таблица символов юникод" и UCS2 это одно и то же
2) SIM800, в текстовом режиме, выдаёт в кодировке UCS2 т.е. в юникоде
3) Коды ASCII для русских символов отличаются от UCS2

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

Цитата(MiklPolikov @ Jan 26 2018, 00:20) *
1)"таблица символов юникод" и UCS2 это одно и то же

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

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

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

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

Русских 8-и битных кодировок много. В GSM они не применяются. Если не английские символы, то только юникод.
Именно поэтому русская СМС до 70 символов, а английская до 140.
KARLSON
А вы команду
AT+CSMP=17,167,0,25 использовали?
Я входящими смс не пользуюсь, а вот при отправке делаю так.
AT+CSMP=17,167,0,25
AT+CMGF=1
AT+CSCS=\"UCS2\"
AT+CMGS="телефон в юникоде"
>текст в юникоде.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.