[Moscow.pm] utf8:all vs json

Nick Knutov mail на knutov.com
Ср Апр 1 03:31:40 PDT 2015


utf8::all в дансере (и не только в нем) нужен, например, чтобы избежать
"Wide character in print" во всевозможных местах, и при этом получать
везде строчки в юникоде, а не ввиде \x{123}.

И, судя по всему, двойное кодирование происходит (или может происходить)
и без utf8::all.

Например, если никаких utf8/utf8::all нет и я использую родной
from_json, а в конфиге для json включен utf8

engines:
  JSON:
    utf8: '1'

и в хеше - уже юникод с флагом, что оно юникод, то

return to_json $ha;

гарантированно ломает юникод. Я уже начинаю сомневаться, правильно ли я
понимаю в документации описание флага utf8 в json, потому что,
получается, с ним всегда происходит еще одно кодирование, что явно не
является желаемым поведением по умолчанию, однако encode_json - это
именно |JSON::XS->new->utf8->encode (||$perl_scalar||)|


ps: Dancer::Serializer - это совсем про другое.


01.04.2015 15:16, Maxim Vuets пишет:
> 2015-04-01 12:06 GMT+02:00 Nick Knutov <mail на knutov.com>:
>> Если из-за utf8::all или неизвестно чего еще в фреймворке где-то происходит
> Настоятельно не рекомендую использовать utf8::all в Дансере. Опять же,
> не знаю за первый, но второй сам включает эти штуки (я говорил об этом
> в прошлом ответе). Чревато плохими побочными эффектами. Используя
> Дансер, нужно играть по его правилам.

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130 

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


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