[Moscow.pm] Mojo::Log и UTF8
Alex Povolotsky
tarkhil на over.ru
Сб Окт 6 07:35:52 PDT 2018
Дальнейшие эксперименты дали совсем странное.
use utf8::all;
как и
use open ':std', ':encoding(UTF-8)';
приводят к тому, что на всех машинах оно ломается и начинает выдавать
перекод.
Кажется, вот эта строка
$handle->print(encode('UTF-8', $msg)) or croak "Can't write to log: $!";
в Mojo::Log написана, прямо скажем, не подумавши, и приводит к двойному
перекодированию.
06.10.2018 17:33, Ксения Боброва пишет:
> А куда он пишет, в STDERR или STDOUT?
>
> Не пробовали binmode(STDERR,":utf8") и binmode(STDOUT,":utf8") ?
>
> сб, 6 окт. 2018 г. в 15:45, Alex Povolotsky via Moscow-pm
> <moscow-pm на pm.org <mailto:moscow-pm на pm.org>>:
>
> Добрый день
>
> Обнаружил, что Mojo::Log у меня не пишет русские буквы
>
>
> === cut mojolog ===
>
> #!/usr/bin/env perl
> use strict;
> use utf8;
> use Mojo::Log;
> my $log = new Mojo::Log;
> print "Просто принт\n";
> $log->info('тест лога');
> === cut mojolog ===
>
> % perl mojolog
> Просто принт
> [Sat Oct 6 15:22:43 2018] [info] �е�� лога
>
> В попытках разобраться, обнаружил, что на трех других серверах этот
> скрипт работает адекватно.
>
> Версия ОС везде FreeBSD 11.1 или 11.2. Perl 5.26. Mojolicous 8.00 или
> 7.88. LANG везде ru_RU.UTF-8.
>
> Что это может быть? Попробовал на проблемной машине обновить перл,
> пересобрал все модули с бинарниками, эффекта никакого.
>
> --
>
> Alex
> --
> Moscow.pm mailing list
> moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
> --
> Ksenia Bobrova
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20181006/72a89e82/attachment.html>
Подробная информация о списке рассылки Moscow-pm