Здравствуйте.
Имеем 2 набора функций:
н1: Length, Pos, Copy...
н2: UTF8Length, UTF8Copy, UTF8Pos...
Имеем строковую переменную: tr : string;
Заполняю ее путем чтения из файла.
Есть 2 ситуации:
с1: Точно известно, что tr в кодировке utf8. В этом случае я пользуюсь н2.
с2: tr в кодировке ANSI.
Я вижу два варианта работы для с2:
в1: декодировать ее в uft8 и использовать набор 2.
в2: не декодировать, но сразу использовать набор 1, а затем результат уже декодировать в утф8.
Для нашей кодовой страницы ANSI=cp1251, в2 работает хорошо, но ВОПРОС:
Будет ли в2 работать корректно в общем случае, не только для нашей кодовой страницы?
Например, для японской локальной кодовой страницы виндоуз?
Действительно ли набор 1 работает корректно только для однобайтных локальных кодовых страниц?
И например, если китайская не однобайтная, то лучше использовать набор 2 и вариант работы 1?