В дисплеях Nextion есть поддержка кириллицы в кодировке iso-8859-5, но при передаче русского текста из Arduino в Nextion происходит несоответствие кодировок, и на экране появляется «абракадабра». Предлагаю простой вариант решения данной проблемы.


Попытаемся передать экрану простое сообщение «Привет Hello!».
String str = "Привет Hello!";
nextionSerial.print("page0.t2.txt=\"" + str+ "\"");
nextionSerial.print("\xFF\xFF\xFF");После выполнения этого кода мы получаем не совсем тот результат на который рассчитывали.

После непродолжительных поисков был найден довольно легкий способ переводить нужный текст в кодировку, понятную для Nextion.
Для этого в проекте nextion editor создаём текстовое поле и вводим в него нужный текст.

Добавляем в обработчик события Touch Press Event код
print t0.txt

Запускаем отладку проекта (кнопка Debug в верхней панели nextion editor). В отладчике нажимаем на созданное текстовое поле. Отладчик выполнит обработчик события touch press event и покажет передаваемую текстовую строку в шестнадцатеричном виде. Нажимаем правой кнопкой мыши на шестнадцатеричный код и в выпадающем списке выбираем COPY HEX+STR.

Вставляем содержимое буфера обмена в блокнот. В тексте заменим все символы пробела на \x. Добавим \x в начале строки и удалим \x в самом конце строки.




Теперь вставим полученный код в программу.
String str = "\xBF\xE0\xD8\xD2\xD5\xE2\x20\xBC\xB8\xC0\x21\x20\x48\x65\x6C\x6C\x6F\x3A\x29"; //Привет МИР! Hello:)
nextionSerial.print("page0.t2.txt=\"" + str+ "\"");
nextionSerial.print("\xFF\xFF\xFF");Результат



Добавить комментарий