<div dir="ltr"><br><br><div class="gmail_quote">2008/9/2 Vladimir V. Perepelitsa <span dir="ltr">&lt;<a href="mailto:inthrax@gmail.com">inthrax@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c">On Tuesday 02 September 2008 15:03:50 Vyacheslav Matjukhin wrote:<br>
&gt; &gt; более новая версия:<br>
&gt; &gt; <a href="http://taka.xfo.cc/utf8.xul" target="_blank">http://taka.xfo.cc/utf8.xul</a><br>
&gt;<br>
&gt; Спасибо за отличную презентацию, но есть один вопрос.<br>
&gt; В 18 слайде, да и в остальных неявным образом, утверждается, что utf-ный<br>
&gt; флаг у &quot;\x{d0}\x{90}&quot; включен. У меня получается по-другому:<br>
&gt;<br>
&gt; $ perl -MEncode=is_utf8 -le &#39;$x = &quot;\x{d0}\x{90}&quot;; $y = &quot;\x{410}&quot;; $c = sub<br>
&gt; {$_ = shift; print $_, is_utf8($_) ? &quot;: on&quot; : &quot;: off&quot; }; $c-&gt;($x);<br>
&gt; $c-&gt;($y);&#39;<br>
&gt; А: off<br>
&gt; Wide character in print at -e line 1.<br>
&gt; А: on<br>
&gt;<br>
&gt; То есть флаг выключен, если в строке нет ни одного символа с кодом &gt;255.<br>
&gt; (perl v5.8.8)<br>
<br>
</div></div>1. это &quot;проблемы&quot; функции utf8::is_utf8.<br>
для нее символы &lt;255 utf&#39;ными не являются.</blockquote><div><br>У меня в коде Encode::is_utf8 используется :)<br>А какой функцией тогда вообще можно узнать, включен ли флаг?<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
2. wide character in print получается тоже только в том случае, если вы<br>
печатаете wide character, т.е. символ с кодом &gt; 255 :)</blockquote><div><br>Ага, это я понимаю. <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
А из чего я взял, что флаг включен - оттуда что я получил такую строку<br>
включением флага на всей строке. Для дампера есть разница даже для символов с<br>
кодом &lt; 255 </blockquote><div><br>Можно увидеть пример кода?<br>У меня не получается придумать пример, когда бы &quot;\x{d0}\x{90}&quot; можно было отличить от &quot;А&quot;.<br><br>$ perl -MData::Dumper -e &#39;$x = &quot;\x{d0}\x{90}&quot;; $y = &quot;А&quot;; print Dumper $x; print Dumper $y;&#39;<br>
$VAR1 = &#39;А&#39;;<br>$VAR1 = &#39;А&#39;;<br><br>Получается вот так:<br>$ perl -MData::Dumper -e &#39;use utf8; $x = &quot;\x{d0}\x{90}&quot;; $y = &quot;А&quot;; print Dumper $x; print Dumper $y;&#39;<br>$VAR1 = &#39;А&#39;;<br>
$VAR1 = &quot;\x{410}&quot;;<br>&nbsp;<br>Но это объясняется как раз тем, что при use utf8 строка &quot;А&quot; изначально декодирована в utf, поэтому ничего не доказывает.<br><br>Мне пока кажется, что perl включает флаг только при наличии хотя бы одного символа с кодом &gt;255.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<div><div></div><div class="Wj3C7c"><br>
--<br>
Vladimir Perepelitsa aka Mons Anderson<br>
&lt;<a href="mailto:inthrax@gmail.com">inthrax@gmail.com</a>&gt; / #99779956<br>
</div></div></blockquote></div><br></div>