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