[Moscow.pm] unicode & regexp

Victor Efimov victor на vsespb.ru
Чт Май 22 11:54:23 PDT 2014


Возможно это баг/упущение в докции, им бы следовало советовать
:encoding(utf-8) (через дефис)

т.к. в другом места написано:

===
Got that? As of Perl 5.8.7, "UTF-8" means UTF-8 in its current sense,
which is conservative and strict and security-conscious, whereas
"utf8" means UTF-8 in its former sense, which was liberal and loose
and lax
===

и действительно:

===
use Encode;
use Data::Dumper;
use open qw/:std :encoding(utf8)/;
print "\x{FFFF_FFFF}";
__END__
Code point 0xFFFFFFFF is not Unicode, may not be portable at 4.pl line 4.
�������
===

===
use Encode;
use Data::Dumper;
use open qw/:std :encoding(utf-8)/;
print "\x{FFFF_FFFF}";
__END__
Code point 0xFFFFFFFF is not Unicode, may not be portable at 3.pl line 4.
"\x{ffffffff}" does not map to utf8.
\x{FFFFFFFF}
===

впрочем это на вывод данных, а на ввод что-то пока не могу
воспроизвести различие.



22 мая 2014 г., 16:02 пользователь Иван Бессарабов <ivan на bessarabov.ru> написал:
> OMG. Еще и такая тонкость =(
>
> Спасибо, Антон. Записал себе поразбиратся с этим
> https://github.com/bessarabov/bessarabov_blog/issues/5
>
> 2014-05-22 15:53 GMT+04:00 Anton Yuzhaninov <citrin на citrin.ru>:
>> On 05/22/14 15:33, Иван Бессарабов wrote:
>>>
>>> Я некоторое время назад разбирался с unicode и как результат этих
>>> разбирательств написал пост —
>>> https://ivan.bessarabov.ru/blog/perl-unicode
>>>
>>> В посте как раз разбирается что такое use utf8 и говорится про use open.
>>
>>
>> Стоило бы ещё написать, что
>> use open qw(:utf8);
>> и
>> use open qw(:encoding(utf8));
>> это не одно и тоже.
>> в perldoc PerlIO пишут:
>>
>> Note that this layer does not validate byte sequences. For reading
>> input, using ":encoding(utf8)" instead of bare ":utf8" is strongly
>> recommended.
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org


Подробная информация о списке рассылки Moscow-pm