Боюсь что тема древнее вселенной, прошу тапками не кидаться. Вписываю в код тексты на кириллице занимает 2байта на знак. И в код под них же "дешифратор" utf8rus(). А зачем ? Разве нет способа прогнать их сквозь дешифратор по ходу компилирования, и уже готовое скормить компилятору. Съэкономится место вдвое и время. Или я чего-то не понимаю ? С уважением.
Ответ очень простой - ASCII кодировка гораздо проще и меньше занимает памяти, даже если это UTF8. Но ASCII кодировка требует аккуратности - таблицы ввода-вывода должны совпадать.
Начать с того, что узнать какие кодировки поддерживает тот дисплей, на который Вы выводите строки (который отвечает за отображение строк). Потом посмотреть какие кодировки можно настроить в Вашей операционной системе. Судя по Вашему высказыванию, что символ кириллицы занимает 2 байта, можно сделать вывод, что в Вашей системе используется UTF-8. Менять кодировку операционной системы не желательно, словите кучу проблем. В Arduino IDE нет настроек кодировки для файлов (может у меня версия старая, посмотрите настройки в своей IDE). Второй вариант использовать другую IDE (например, на основе Eclipse), где есть возможность задавать кодировки для конкретных файлов. Хотя разные кодировки для файлов могут доставить проблемы в будущем. Простого ответа на Ваши вопросы нет...
Дисплея у меня нет. Вывод идет на тупые СД матрицы 8х8. Перекодировку делает широко-известная функция : Код (Text): // Функция перекодировки русских букв из UTF-8 в Win-1251 String utf8rus(String source) { Короче я понял - дело мутное.
всё это и есть названия ASCII таблиц. Microchip Studio использует Win-1251 (если не изменяет память) для кириллицы, дуринаIDE - UTF (системную)
Конечно, есть. Оно, конечно, ХЗ что имеется в виду под "прогнать и скормить", но вот здесь, например, на этапе компиляции считаются реальные (в буквах) длины строк. Если надо перекодировать, то это тоже можно. Техника та же самая.