[Moscow.pm] utf8
artur+moscow.pm.org на niif.spb.su
artur+moscow.pm.org на niif.spb.su
Пн Окт 13 13:23:35 PDT 2014
14.10.2014, 00:18, "Nikolay Mishin" <mi на ya.ru>:
> клевая конструкция -CSA
> а что это?
Рассматривает STDIN, STDOUT, STDERR и @ARGV как utf8.
> работает!!
>
> 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
wbw, artur
Подробная информация о списке рассылки Moscow-pm