<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    utf8::all в дансере (и не только в нем) нужен, например, чтобы
    избежать "Wide character in print" во всевозможных местах, и при
    этом получать везде строчки в юникоде, а не ввиде \x{123}.<br>
    <br>
    И, судя по всему, двойное кодирование происходит (или может
    происходить) и без utf8::all.<br>
    <br>
    Например, если никаких utf8/utf8::all нет и я использую родной
    from_json, а в конфиге для json включен utf8<br>
    <br>
    engines:<br>
      JSON:<br>
        utf8: '1'<br>
    <br>
    и в хеше - уже юникод с флагом, что оно юникод, то<br>
    <br>
    return to_json $ha;<br>
    <br>
    гарантированно ломает юникод. Я уже начинаю сомневаться, правильно
    ли я понимаю в документации описание флага utf8 в json, потому что,
    получается, с ним всегда происходит еще одно кодирование, что явно
    не является желаемым поведением по умолчанию, однако encode_json -
    это именно <code class="perl plain" style="box-sizing: content-box
      !important; font-family: inherit !important; font-size: 12px;
      padding: 0px !important; color: black !important; white-space:
      pre; border-radius: 0px !important; border: 0px !important;
      bottom: auto !important; float: none !important; height: auto
      !important; left: auto !important; line-height: normal; margin:
      0px !important; outline: 0px !important; overflow: visible
      !important; position: static !important; right: auto !important;
      text-align: left; top: auto !important; vertical-align: baseline
      !important; width: auto !important; font-weight: normal;
      font-style: normal; min-height: inherit !important; font-variant:
      normal; letter-spacing: normal; orphans: auto; text-indent: 0px;
      text-transform: none; widows: 1; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-image: none !important;
      background-attachment: initial !important; background-color:
      rgb(245, 245, 245); background-size: initial !important;
      background-origin: initial !important; background-clip: initial
      !important; background-position: initial !important;
      background-repeat: initial !important;">JSON::XS->new->utf8->encode
      (</code><code class="perl variable" style="box-sizing: content-box
      !important; font-family: inherit !important; font-size: 12px;
      padding: 0px !important; color: rgb(170, 119, 0) !important;
      white-space: pre; border-radius: 0px !important; border: 0px
      !important; bottom: auto !important; float: none !important;
      height: auto !important; left: auto !important; line-height:
      normal; margin: 0px !important; outline: 0px !important; overflow:
      visible !important; position: static !important; right: auto
      !important; text-align: left; top: auto !important;
      vertical-align: baseline !important; width: auto !important;
      font-weight: normal; font-style: normal; min-height: inherit
      !important; font-variant: normal; letter-spacing: normal; orphans:
      auto; text-indent: 0px; text-transform: none; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-image: none !important; background-attachment: initial
      !important; background-color: rgb(245, 245, 245); background-size:
      initial !important; background-origin: initial !important;
      background-clip: initial !important; background-position: initial
      !important; background-repeat: initial !important;">$perl_scalar</code><code
      class="perl plain" style="box-sizing: content-box !important;
      font-family: inherit !important; font-size: 12px; padding: 0px
      !important; color: black !important; white-space: pre;
      border-radius: 0px !important; border: 0px !important; bottom:
      auto !important; float: none !important; height: auto !important;
      left: auto !important; line-height: normal; margin: 0px
      !important; outline: 0px !important; overflow: visible !important;
      position: static !important; right: auto !important; text-align:
      left; top: auto !important; vertical-align: baseline !important;
      width: auto !important; font-weight: normal; font-style: normal;
      min-height: inherit !important; font-variant: normal;
      letter-spacing: normal; orphans: auto; text-indent: 0px;
      text-transform: none; widows: 1; word-spacing: 0px;
      -webkit-text-stroke-width: 0px; background-image: none !important;
      background-attachment: initial !important; background-color:
      rgb(245, 245, 245); background-size: initial !important;
      background-origin: initial !important; background-clip: initial
      !important; background-position: initial !important;
      background-repeat: initial !important;">)</code><br>
    <br>
    <br>
    ps: Dancer::Serializer - это совсем про другое.<br>
    <br>
    <br>
    <div class="moz-cite-prefix">01.04.2015 15:16, Maxim Vuets пишет:<br>
    </div>
    <blockquote
cite="mid:CAG6DbojOaeeiEgn9TFR4Vib8221KqpxGMhJ0RhRfenwFZj1WyQ@mail.gmail.com"
      type="cite">
      <pre wrap="">2015-04-01 12:06 GMT+02:00 Nick Knutov <a class="moz-txt-link-rfc2396E" href="mailto:mail@knutov.com"><mail@knutov.com></a>:
</pre>
      <blockquote type="cite">
        <pre wrap="">Если из-за utf8::all или неизвестно чего еще в фреймворке где-то происходит
</pre>
      </blockquote>
      <pre wrap="">Настоятельно не рекомендую использовать utf8::all в Дансере. Опять же,
не знаю за первый, но второй сам включает эти штуки (я говорил об этом
в прошлом ответе). Чревато плохими побочными эффектами. Используя
Дансер, нужно играть по его правилам.
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Best Regards,
Nick Knutov
<a class="moz-txt-link-freetext" href="http://knutov.com">http://knutov.com</a>
ICQ: 272873706
Voice: +7-904-84-23-130 </pre>
  </body>
</html>