Как конвертировать строку из Unicode GB2312 или UCS2

xizix
Offline
Зарегистрирован: 10.11.2017

Гуглил дня три, заманался, не соображу никак.

Есть модуль А6, короче надо функцию, чтоб прочесть текст входящего смс и скинусть в serial.

Пример куска текста при AT+CSCS=GSM

§б§в§Ъ§Ю§Ц§в §д§Ц§Ь§г§д§С

В дальнейшем надо будет вытащить команду, но это уже отдельная история, хотябы просто конвертировать в русский текст. ПОЖАЛУЙСТА ПОМОГИТЕ.

b707
Offline
Зарегистрирован: 26.05.2017

если это будет команда - используйте латиницу и текстовой режим CMC  (AT+CMGF=1) - ничего перекодировать вообще не понадобится

А русский язык в автоматике вообще не нужен.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

b707 пишет:

А русский язык в автоматике вообще не нужен.

У мну есть, для удобства :) Послал контроллеру СМС "Поц, отжаться!", а он тебе взял - и отжался :) Крови попило это PDU, правда - жуть.

MaksVV
Offline
Зарегистрирован: 06.08.2015

DIYMan пишет:
Крови попило это PDU, правда - жуть.


Да уж, разбираясь в этом протоколе всегда посещал вопрос - ну какую такую петрушку курили авторы pdu

xizix
Offline
Зарегистрирован: 10.11.2017

b707 пишет:

если это будет команда - используйте латиницу и текстовой режим CMC  (AT+CMGF=1) - ничего перекодировать вообще не понадобится

А русский язык в автоматике вообще не нужен.

Просто для автопополнения баланса нужно считать код подтверждения и отправить обратно, а смс на русском.

xizix
Offline
Зарегистрирован: 10.11.2017

DIYMan, Поделитесь, пожалуйста.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

xizix пишет:

В дальнейшем надо будет вытащить команду, но это уже отдельная история, хотябы просто конвертировать в русский текст. ПОЖАЛУЙСТА ПОМОГИТЕ.

Смотри, вот тут выкладывал код кодировки кирилицы в UCS2 который используется в PDU. Думаю написать обратный алгоритм раскодировки по нему не сложно.

Но сразу предупреждаю код ужастный!

http://arduino.ru/forum/programmirovanie/pomogite-razobratsya-chto-za-gl...

 

MaksVV пишет:
DIYMan пишет:
Крови попило это PDU, правда - жуть.

 

Да уж, разбираясь в этом протоколе всегда посещал вопрос - ну какую такую петрушку курили авторы pdu

MaksVV так вы в итоге зазобрались с кодированием декодированием? 

Я тоже был очень удивлен что номер телефона кодируется одним способом, тело сообщения другим, видимо писали разные люди, кто из китая кто из индии, а потом где нибудь в средней азии соединили это все для отправки командой AT+CMGS

Хотя предисторию никто не рассказал, может это для совместимости  с каким нибудь аппаратным кодером/декодекром.

Одно обидно, что под кирилицу отводится всего 70 символов, а вот для латиницы сделали правильно, 7ми быитный формат ужимают и отправить в 140 байтах можно 160 символов.
Как тут правильно заметили для автоматики кирилица не нужна, а вот для души я делаю поддержку русского. Приятно когда нормальные смс приходят.

xizix
Offline
Зарегистрирован: 10.11.2017

Andrey12 пишет:

xizix пишет:

В дальнейшем надо будет вытащить команду, но это уже отдельная история, хотябы просто конвертировать в русский текст. ПОЖАЛУЙСТА ПОМОГИТЕ.

Смотри, вот тут выкладывал код кодировки кирилицы в UCS2 который используется в PDU. Думаю написать обратный алгоритм раскодировки по нему не сложно.

Но сразу предупреждаю код ужастный!

http://arduino.ru/forum/programmirovanie/pomogite-razobratsya-chto-za-gl...

 

MaksVV пишет:
DIYMan пишет:
Крови попило это PDU, правда - жуть.

 

Да уж, разбираясь в этом протоколе всегда посещал вопрос - ну какую такую петрушку курили авторы pdu

MaksVV так вы в итоге зазобрались с кодированием декодированием? 

Я тоже был очень удивлен что номер телефона кодируется одним способом, тело сообщения другим, видимо писали разные люди, кто из китая кто из индии, а потом где нибудь в средней азии соединили это все для отправки командой AT+CMGS

Хотя предисторию никто не рассказал, может это для совместимости  с каким нибудь аппаратным кодером/декодекром.

Одно обидно, что под кирилицу отводится всего 70 символов, а вот для латиницы сделали правильно, 7ми быитный формат ужимают и отправить в 140 байтах можно 160 символов.
Как тут правильно заметили для автоматики кирилица не нужна, а вот для души я делаю поддержку русского. Приятно когда нормальные смс приходят.

Благодарю, но всё же надёюсь на помощь с декодированием. Может есть знатоки, которые с этим сталкивались.

negavoid
Offline
Зарегистрирован: 09.07.2016

Дык, чем помогать-то, перевести ucs2 из смски в utf8? Ну, давайте, я нагуглю уже готовый код вместо вас:

https://github.com/RoelofBerg/Utf8Ucs2Converter/blob/master/Utf8Ucs2Conv...

b707
Offline
Зарегистрирован: 26.05.2017

xizix пишет:

Благодарю, но всё же надёюсь на помощь с декодированием. Может есть знатоки, которые с этим сталкивались.

интересно, на какую еще помощь вы рассчитываете, если вам уже дали готовый код? Что кто-то его встроит прямо в ваш скетч? - "этто вряд ли" (с)

xizix
Offline
Зарегистрирован: 10.11.2017

Всем спасибо