Himik писал(а):
Да, согласен. При этом нет необходимости в 2-х версиях библиотек обработки - достаточно и одной 32-битной, плюс функция конвертации.
Хотел бы я посмотреть на геморрой с файловыми операциями в такой конфигурации :). Нет, вру, не хотел бы :(.
UTF-32 весьма прожорлив к памяти. Но т.к. в подавляющем большинстве задач никакой специфичной обработки строк нет, производительность UTF-32-ориентированной системы на самом деле резко упадёт, например в базах данных.
Во-первых, по причине постоянного перекачивания большего объёма памяти.
Во-вторых, т.к. расход оперативной памяти вырастет, операции подкачки виртуальной памяти будут происходить намного чаще.
В-третьих, постоянная конвертация двух форматов отожрёт ещё изрядно процессорного времени.
Так что, извините, но ваше ИМХО для меня звучит абсолютно неубедительно.
Кстати, из практики. Иногда приходится загружать в текстовый редактор файлы размером более гигабайта. Вот не хотел бы я, чтобы они резко вырастали в памяти :)
Постоянный своп, кстати, один из основных источников тормозов современных систем.
UTF-8 достаточно совместим для того, чтобы без проблем работали почти все основные функции. Я без проблем могу в редакторе написать программу на "C" с русскими текстами и комментариями в UTF-8, с функциями printf, strcat, strlen и пр-пр-пр и эта программа
скомпилируется вероятно почти любым компилятором без единой претензии и с большой вероятностью ЗАРАБОТАЕТ без какой-либо специальной адаптации.