[Moscow.pm] utf8

Ксения Боброва bobrovaksenia на gmail.com
Пн Окт 13 13:05:43 PDT 2014


$a =~ s/\((\w+)\)/$1/g;
print pack('U', hex($a));

13 октября 2014 г., 23:51 пользователь Nikolay Mishin <mi на ya.ru> написал:

> Дорогие перломаны и перлознаи, как любил говорить мой хороший знакомый,
> Приходит мне на вход строка (
> https://github.com/mishin/presentation/blob/master/show_utf.pl)
> вида
> \(42f) \(43b)\(44e)\(431)\(43b)\(44e) \(41f)\(435)\(440)\(43b)
> - (так utf экспортируется в dsx в IBM Datastage)
> ну я ее преобразую к виду
> \x{42f} \x{43b}\x{44e}\x{431}\x{43b}\x{44e} \x{41f}\x{435}\x{440}\x{43b}
>
> my $utf_str_2 =
>   "\(42f) \(43b)\(44e)\(431)\(43b)\(44e) \(41f)\(435)\(440)\(43b)";
> $utf_str_2 =~ s/\((\w+)\)/\\x{$1}/g;
>
> вот код
>
> #!/usr/bin/env perl
> use utf8;
> use Modern::Perl;
> use Encode::Locale;
> use Data::Dumper qw( Dumper );
> if (-t) {
> binmode( STDIN, ":encoding(console_in)" );
> binmode( STDOUT, ":encoding(console_out)" );
> binmode( STDERR, ":encoding(console_out)" );
> }
> my $love = "Я люблю Перл";
> print Dumper ($love);
> my $utf_str =
> "\x{42f} \x{43b}\x{44e}\x{431}\x{43b}\x{44e} \x{41f}\x{435}\x{440}\x{43b}";
> $utf_str =~ s/\\x\{(\w+)\}/\($1)/g;
> say "$utf_str";
> my $utf_str_2 =
> "\(42f) \(43b)\(44e)\(431)\(43b)\(44e) \(41f)\(435)\(440)\(43b)";
> $utf_str_2 =~ s/\((\w+)\)/\\x{$1}/g;
> say 1;
> say $utf_str_2;
> но интересно, что если
> у тебя есть строка
> $a="\x{42f}";
> say $a;
> то say выведет "Я"
> но если
> у тебя происходят преобразования
> и сама строка становится
> "\x{42f}" после
> $a="\(42f)";
> $a =~ s/\((\w+)\)/\\x{$1}/g;
> то
> say $a;
> выводит "\x{42f}"
> вопрос (тем, кто дочитал;))
> как сделать так, чтобы напечаталась "Я" ??
>
> спасибо
>
> --
> С уважением
> Николай Мишин
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Ksenia Bobrova
Senior Perl Developer
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20141014/17541100/attachment.html>


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