Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CUSD запрос
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
MKdemiurg
Оператор WIN и МТС РОС

AT+CUSD=1,"*100#",15

OK

+CUSD: 0,"04110430043B0430043D0441003A003100330037002C0035003004400020",72


Как его расшифровать?
И как отличить, когда приходит латиница?

Может у кого есть готовые процедурки для расшифровки? sm.gif
mantech
Цитата(MKdemiurg @ Oct 18 2014, 17:57) *
Как его расшифровать?
И как отличить, когда приходит латиница?


Про юникод почитайте. Вкратце - 2х байтное представление символов, 04 код кириллицы, 00- латинские символы, след.байтом идет код символа, надо вычесть некоторое число(забыл уже laughing.gif ) и получаем код соотв ANSI.
adnega
Почитайте про PDU, там такое было.
Переводит в win-1251, исходная строка состоит из 16-битных символов
(0411-0430-043B-0430-043D-0441-003A-0031-0033-0037-002C-0035-0030-0440-0020)
Код
                if((0x410 <= new_char) && (new_char <= 0x044F))
                {
                    str[j] = new_char - 0x0410 + 0xC0;
                }
                else if(new_char == 0x0401)
                {
                    str[j] = 'Ё';
                }
                else if(new_char == 0x0451)
                {
                    str[j] = 'ё';
                }
                else if(new_char < 128)
                {
                    str[j] = new_char;
                }
                else
                {
                    str[j] = '?';
                }
mantech
Цитата(adnega @ Oct 18 2014, 23:00) *
str[j] = new_char - 0x0410 + 0xC0;


Вот именно это я и хотел сказать...
MKdemiurg
ооо, спасибо.
vintick
А переключить чтобы латиница шла срзу в ответах от станции можно?
Или это оператор определяет? Нужен баланс в тексте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.