Кодировка текста Android->arduino

boris92
Offline
Зарегистрирован: 12.07.2014

Уважаемые форумчане! Кто может помочь разобраться в такой ситуации: передаю текст по bluetooth от приложения со смартфона на arduino. Естественно, английский текст приходит 1 в 1, а вместо русского - кракозябры. Решил проверить код приходящего символа. Отправляю "А", приходит "-112", отправляю "Б" приходит "-111", отправляю "В" приходит "-110". Отсюда и кракозябры. Может кто сталкивался? при посыле с компьютера - все приходит нормально - и русский и английский. Верно ли, что в андроид кодировка UTF-8, а на компьютере cp1251? Заранее спасибо)

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

При посылке с компьютера это тоже через блютуз? Надо сначало определить юникод там приходит (2 байта например) или нет. Вполне может быть что у Вас приёмный буфер определён как char а не byte отсюда и невозможность вывести русские символы. Например (char)216 выведет символ Ш, и в ардуино это нормально работает, но 216 Вы не получите при использовании char. Если же приходит юникод то надо глянуть что там за кода дальше видно будет.

boris92
Offline
Зарегистрирован: 12.07.2014

У меня char. То есть нужно просто переделать алгоритм передачи под byte? и по коду символа рисовать сам символ? Спасибо! попробую!

boris92
Offline
Зарегистрирован: 12.07.2014

В принципе получилось вот что: на стороне Arduino принимаю массив байт. К каждому попутно прибавляя некий коэффициент(один на всех), чтоб код символа попал в таблицу символов, которую я тож переделал. Потом по коду символа выводится char символ и все...