[Moscow.pm] utf8
Nikolay Mishin
mi на ya.ru
Пн Окт 13 13:18:10 PDT 2014
клевая конструкция -CSA
а что это?
работает!!
14.10.2014, 00:07, "artur+moscow.pm.org на niif.spb.su" <artur+moscow.pm.org на niif.spb.su>:
> 13.10.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}"
>> вопрос (тем, кто дочитал;))
>> как сделать так, чтобы напечаталась "Я" ??
>
> # perl -CSA -lnpe 's#\\\((...)\)#chr(hex$1)#gsme'
> \(42f) \(43b)\(44e)\(431)\(43b)\(44e) \(41f)\(435)\(440)\(43b)
> Я люблю Перл
>
> --
> wbw, artur
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
С уважением
Николай Мишин
Подробная информация о списке рассылки Moscow-pm