Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ> AB>Смотря что ты подразумеваешь под "обработкой текстов". ЕМ> Типичные операции, вроде поиска символа в строке вперед/назад, поиска/замены подстроки, разбора строки, регулярных выражений и т.п.
Скорость данных операций аналогична скорости при работе с однобайтовыми кодировками с поправкой на увеличение размера памяти, который требуется для юникода, и необходимость анализировать старшие биты для вычисления смещения до следующего символа. Другими словами, overhead будет незаметен пока тебе не требуется обрабатывать терабайты/петабайты информации.
Это при условии, что под словом "символ" ты понимаешь unicode code point (т.е. без процесса нормализации, смены регистров / капитализации и вот этого всего веселья).
ЕМ> AB>Для большинства программ нет никакой разницы в какой кодировке у тебя лежат данные в char* потому что тебя интересует только размер буфера памяти и работа ведется с абстрактными байтами. ЕМ> Это лишь в том случае, когда строка представляет собой лишь текст для хранения/сравнения — идентификатор, название и подобное. А в той же файловой системе обработка имен/путей/шаблонов идет массово.
В большинстве файловых систем (в linux) имя файла — просто набор байт (удовлетворяющий условию типа отсутствия '/' и 0x00). В какой они кодировке — это исключительно вопрос предпочтений пользователя.