А сделать 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

Ответить