utf8 вообще везде.
11.03.2015 15:03, Artem Zhuravlev пишет: > В какой кодировке проект? И консоль куда вы все это выводите? > > 11 марта 2015 г., 12:05 пользователь Nick Knutov <[email protected] > <mailto:[email protected]>> написал: > > Столкнулся с проблемой, туплю и не могу понять почему всё так. > > use Dancer ':syntax'; > ... > my $aa = { a=>'b', c=>'д' }; # тут русская буква > my $jj = to_json($aa); > utf8::is_utf8($jj); # returns 1 > my $bb = from_json($jj); > > Получаю Wide character in subroutine entry. Почему?(1) > > Ок, грепаю рассылку, делаю > > my $jj = to_json($aa); > utf8::encode($jj); > my $bb = from_json($jj); > > Судя по Dumper($aa, $jj, utf8::is_utf8($jj), $bb); > $bb теперь такое же, как $aa, а вот $jj в текстовом представлении > $VAR2 = '{ > "c" : "д", > "a" : "b" > }'; > т.е. содержит совсем не 'д' Почему?(2) > > Почитав документацию на модули, я подумал, что from_json всегда ожидает > отсутствие utf8 флага, но есть decode_json, которая для случая когда > флаг есть. Ок. Делаем > use Cpanel::JSON::XS 'decode_json'; > $cc = Cpanel::JSON::XS::decode_json($jj); > > И если перед этим не было utf8::encode($jj);, то снова Wide character in > subroutine entry. ПОЧЕМУ???(3) Ведь у строки есть флаг и decode_json, > судя по документации, ожидает его наличия. > > и (4) - как правильно делать все это? > > > > -- > Best Regards, > Nick Knutov > http://knutov.com > ICQ: 272873706 > Voice: +7-904-84-23-130 > -- > Moscow.pm mailing list > [email protected] <mailto:[email protected]> | http://moscow.pm.org > > > > > -- > Best regards, > Artem V. Zhuravlev > > -- Best Regards, Nick Knutov http://knutov.com ICQ: 272873706 Voice: +7-904-84-23-130 -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
