[Moscow.pm] json, Dancer1, utf8

Artem Zhuravlev zhuravlev.ua на gmail.com
Ср Мар 11 03:03:21 PDT 2015


В какой кодировке проект? И консоль куда вы все это выводите?

11 марта 2015 г., 12:05 пользователь Nick Knutov <mail на knutov.com> написал:

> Столкнулся с проблемой, туплю и не могу понять почему всё так.
>
> 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
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
Best regards,
Artem V. Zhuravlev
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150311/9bfdc2cd/attachment.html>


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