ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 апреля
1580447 Топик полностью
Гyдвинволшебник (Сегодня, 17:39, просмотров: 44) ответил il-2 на Не все советы ты испробовал :-)
Да возбудила идейка изобразить "драйвер" бегущей строки для матричных индикаторов на 8-ногом СH32V003. Там и столкнулся с тем, что в MRS и строки константы и функции работы со строками пользуют UTF. Потыкался заставить (подробности по ссылке) и плюнул. Мне оно не нужно по большому счету - принимаю по uart CP1251. Eще можно функцию перекодировки вызывать перед выводом, если припрет. А так код неплохой получился - всего 3.5 кб с учером полной таблицы знакогенератора CP1251. 

..

https://caxapa.ru/1580442.html

String utf8rus(String source)

{

int i,k;

String target;

unsigned char n;

char m[2] = { '0', '\0' };

k = source.length(); i = 0;

while (i < k) {

n = source[i]; i++;

if (n >= 0xC0) {

switch (n) {

case 0xD0: {

n = source[i]; i++;

if (n == 0x81) { n = 0xA8; break; }

if (n >= 0x90 && n <= 0xBF) n = n + 0x30;

break;

}

case 0xD1: {

n = source[i]; i++;

if (n == 0x91) { n = 0xB8; break; }

if (n >= 0x80 && n <= 0x8F) n = n + 0x70;

break;

}

}

}

m[0] = n; target = target + String(m);

}

return target;

}