<div dir="ltr">Я б не изучал, но её подключает какой-то модуль из зависимостей проекта. Из-за чего в Mojolicious ломается декодирование параметров, содержащих JSON с кириллицей. Потому что url_unescape начинает возвращать строку с флагом, и она дальше не может быть перекодирована в нужную кодировку.<br><br>24 апреля 2015 г., 20:36 пользователь Victor Efimov <<a href="mailto:victor@vsespb.ru">victor@vsespb.ru</a>> написал:<br>><br>> 2015-04-24 19:54 GMT+03:00 Denis Ibaev <<a 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>