Привет. http://www.unicode.org/reports/tr15/ - тут смотреть таблички и картинки.
Далее читать и обрабатывать свои данные: http://search.cpan.org/~sadahiro/Unicode-Normalize-1.14/Normalize.pm http://search.cpan.org/~flora/perl-5.14.2/pod/perlunicode.pod#Unicode_Regular_Expression_Support_Level Смотрим секцию RL2.1 Canonical Equivalents 2012/3/13 Ali Ramazanov <[email protected]>: > Приветствую всех! > > Возможно я нарвался на что-то попсовое, но всё равно был удивлён. > Работая со строками как с октетами, обнаружил, что eq не даёт положительно > результата на две строки (при выводе на консоль они идентичны). > Перевел их во внутренний формат, обнаружил, что буква 'й' может по-разному > записываться. > > первый вариант: > $ perl -e 'use Encode warn Encode::encode("utf8", "\x{438}\x{306}")' > й at -e line 1. > > декомпозируется на два символа: > $ perl -e 'use Encode warn Encode::encode("utf8", "\x{438}")' > и at -e line 1. > > $ perl -e 'use Encode warn Encode::encode("utf8", "\x{306}")' > ̆ at -e line 1. > ------------------------------------------------- > > второй вариант: > $ perl -e 'use Encode warn Encode::encode("utf8", "\x{439}")' > й at -e line 1. > > > На консоле первый и второй вариант выглядит абсолютно одинаково, как с этим > правильно бороться кроме как замены и привидения к одному виду?) > Потратил какое-то время и не хотел верить свои глазам :) > > Спасибо! > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Best regards, Ruslan. -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
