<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>