<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">24.04.2015 20:52, Denis Ibaev пишет:<br>
    </div>
    <blockquote
cite="mid:CAG=DCOcRATMLBOyNYkmAf_N8+5dF7stR5b9f98k+H=j__kKtxA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Я б не изучал, но её подключает какой-то модуль из
        зависимостей проекта. Из-за чего в Mojolicious ломается
        декодирование параметров, содержащих JSON с кириллицей. Потому
        что url_unescape начинает возвращать строку с флагом, и она
        дальше не может быть перекодирована в нужную кодировку.<br>
        <br>
      </div>
    </blockquote>
    1) А если переопределить url_unescape, как функцию, хотя это конечно
    лечить симптомы, а не болезнь.<br>
    <br>
    <br>
    2) Из того же разряда<br>
    BEGIN{<br>
        *CORE::GLOBAL::chr = sub {<br>
            if ( $_[0] < 256 ){<br>
                use bytes;<br>
                CORE::chr($_[0]) # или pack("C", $_[0]);<br>
            }<br>
            else {<br>
                CORE::chr($_[0]);<br>
            }<br>
        };<br>
    }<br>
    <br>
    <blockquote
cite="mid:CAG=DCOcRATMLBOyNYkmAf_N8+5dF7stR5b9f98k+H=j__kKtxA@mail.gmail.com"
      type="cite">
      <div dir="ltr">24 апреля 2015 г., 20:36 пользователь Victor Efimov
        <<a moz-do-not-send="true" href="mailto:victor@vsespb.ru">victor@vsespb.ru</a>>
        написал:<br>
        ><br>
        > 2015-04-24 19:54 GMT+03:00 Denis Ibaev <<a
          moz-do-not-send="true" href="mailto:dionys@gmail.com">dionys@gmail.com</a>>:<br>
        > > Привет.<br>
        > ><br>
        > > Не могу понять, почему в одном случае ниже приведённый
        скрипт выставляет у<br>
        > > строки флаг utf8, а в другом нет. Без прагмы encoding
        такого эффекта не<br>
        > > наблюдается. Может кто-нибудь объяснить?<br>
        ><br>
        > Наверное баг в прагме encoding? Она deprecated: "This
        module has been<br>
        > deprecated since perl v5.18.", как раз из-за своего
        странного<br>
        > поведения.<br>
        > Т.е. ответа на поставленный вопрос у меня нет, просто
        уточняю что эта<br>
        > прагма кривая и может и не стоит её поведение изучать.<br>
        ><br>
        > ><br>
        > > Вывод скрипта:<br>
        > ><br>
        > > v1 is utf-8 = 0<br>
        > > v2 is utf-8 = 0<br>
        > > v1 is utf-8 = 1<br>
        > > v2 is utf-8 = 0<br>
        > ><br>
        > > Сам скрипт:<br>
        > ><br>
        > > use strict;<br>
        > > use warnings;<br>
        > > use v5.12;<br>
        > > use utf8;<br>
        > ><br>
        > > use encoding 'utf-8';<br>
        > ><br>
        > > my $v1 = '';<br>
        > > my $v2 = '';<br>
        > ><br>
        > > utf8::downgrade($v1);<br>
        > > utf8::downgrade($v2);<br>
        > ><br>
        > > say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0;<br>
        > > say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0;<br>
        > ><br>
        > > $v1 .= chr(hex($_)) for qw(22 D0);<br>
        > > $v2 .= chr(hex($_)) for qw(D0);<br>
        > ><br>
        > > say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0;<br>
        > > say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0;<br>
        > ><br>
        > > Окружение:<br>
        > ><br>
        > > $ perl -v<br>
        > > This is perl 5, version 14, subversion 2 (v5.14.2)
        built for<br>
        > > x86_64-linux-gnu-thread-multi<br>
        > > (with 57 registered patches, see perl -V for more
        detail)<br>
        > ><br>
        > > $ perl -MEncode -E 'say Encode->VERSION'<br>
        > > 2.73<br>
        <br>
        -- <br>
        Денис Ибаев<br>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>