[Moscow.pm] utf8

Ali Ramazanov netspamer на gmail.com
Пн Мар 12 15:51:25 PDT 2012


Приветствую всех!

Возможно я нарвался на что-то попсовое, но всё равно был удивлён.
Работая со строками как с октетами, обнаружил, что 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.


На консоле первый и второй вариант выглядит абсолютно одинаково, как с этим
правильно бороться кроме как замены и привидения к одному виду?)
Потратил какое-то время и не хотел верить свои глазам :)

Спасибо!
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120313/a2adfbf6/attachment.html>


Подробная информация о списке рассылки Moscow-pm