Границы применимости функций pos,length (не utf8)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Границы применимости функций pos,length (не utf8)

Сообщение poiuyt555 » 16.06.2013 11:02:07

Здравствуйте.
Имеем 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?
poiuyt555
новенький
 
Сообщения: 51
Зарегистрирован: 12.09.2011 07:45:51

Re: Границы применимости функций pos,length (не utf8)

Сообщение Alex2013 » 20.06.2013 12:26:22

1 Не вижу проблем функции для работы с утф8 вообще не знают о том кто вы русский или китаец ...
2 Ничем не отличается от любой другой (Нужен только набор японских шрифтов)
3 Да + Eng
4 Если имеется ввиду какая-то не утф-кодировка то нужны специальный функции для перекодировки (Также как и для кириллицы )
Alex2013
долгожитель
 
Сообщения: 3147
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 219

Рейтинг@Mail.ru