А сделать utf8::decode и сравнить во внутреннем формате перла не помогает?
13 марта 2012 г. 3:53 пользователь Ruslan Zakirov <[email protected]>написал: > Привет. > > 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 > -- С уважением, Александр Личный блог: http://eax.me/ Мой форум: http://it-talk.org/ Мой Twitter: http://twitter.com/afiskon
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
