fk0, легенда (18.07.2012 16:26, просмотров: 524) ответил AlexBi на Интересно узнать про удобство UTF-8 при написании программ для м/к, в которых символы "не только на дисплей показываются, но откуда-то вводятся и выводятся." Если это откуда/куда понимает только UTF-8, то в программе на м/к придется делать
Придётся только делать перекодировку UTF-8 <-- UCS2 --> ISO8859-5. Первое как делать в wikipedia написано, не сложно. Второе ещё проще: ГОСТ = isascii(UCS) ? UCS : UCS-0x360; Наоборот аналогично. ISO8859-5 уже можно использовать как плохонькую замену UCS2 для внутреннего применения (тогда wsprintf --> sprintf, wstrxxx --> strxxx...) я об этом писал раньше. Подходит только для русского, украинского и беларусского. Для китайцев, увы, городите UCS2 в полном объёме. Про windows-1251 дальше бред написан. В локальную кодировку дисплея, если он текстовый, в любом случае перекодировать придётся. И UTF или нет -- без разницы. Если графический, то тем более, ещё и шрифты по-точечкам рисовать... Декодирование же именно UTF в UCS не является чем-то принципиально трудным, повторюсь, на странице в википедии алгоритм описан и он весьма прост.
Смысл ISO8859-5 в данном случае, что появляется имитация функций libc, работающих с UCS строками (wsprintf, wstrxxx... и др.) достаточная для переноса ПО написанного на PC с полноценной реализацией данных функций. Альтернативой могла бы быть полная реализация всех функций работы с unicode, но это действительно не просто и сильно увеличивает объёмы требуемой памяти. Непосредственно же UCS2, например, скорей пригодится для ввода-вывода. А не UTF-8. Место которой, в основном, только в исходниках. А общий смысл такой, что можно использовать стандартные функции (из ISO9899) для работы с unicode и переносить программу между PC и микроконтроллером без изменений.
Смысл UTF-8, что позволяет корректную интерпретацию текста в разных прграммах и на разных компьютерах (исходники -- они не только на одной машине в одной программе у одного программиста). Другой альтернативы кодировке здесь нет.
[ZX]