powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, загадочные трансформации кириллицы в UTF
2 сообщений из 2, страница 1 из 1
Perl, загадочные трансформации кириллицы в UTF
    #39254044
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть скрипт на Perl, в нем подключаются самописные модули.
Примерно так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
use utf8;
use JobLogger;
...
my $log = Logger->new();
...
$log->run("# Отработка задания по созданию автоматически подключаемых пакетов");
...
$log->log("- Загрузка списка клиентов...");
...

----конец файла----

use utf8;
package Logger;
...
sub new
{
...
}
sub DESTROY
{
  my $self = shift;
  my $time = time - $start;
  $self->run("*** Завершено, время работы: $time");
...
}
...
sub _file($$$)
{
  my $self = shift;
  my $file = shift;
  my $data = shift;
  my $pid = " [$$]";
  my $clock = $self->_timestamp();
  open (LOG, ">>:utf8", $file);
  my $ofh = select(LOG);
  $| = 1;
  select($ofh);
  if (defined($data) && length($data)>0)
  {
    print LOG "${clock}:${pid} ${data}\n";
  }
  else
  {
    print LOG "\n";
  }
  close(LOG);
}

sub log
{
  my $self = shift;
  my $data = $self->_data(@_);
  my $file = ($self->{'config'}->{'dir'}||'') . ($self->{'config'}->{'file'});
  $self->_file("$file.log-work",$data);
  $self->print($data) if (($self->{'config'}->{'echo'} & LOG_ECHO_LOG) == LOG_ECHO_LOG);
  $self->{'counter'}->{'log'}++;
}

sub run
{
  my $self = shift;
  my $data = $self->_data(@_);
  my $file = ($self->{'config'}->{'dir'}||'') . ($self->{'config'}->{'file'});
  $self->_file("$file.log-state",$data);
  $self->_file("$file.log-work",$data) if ($self->{'config'}->{'log'});
  $self->print($data) if (($self->{'config'}->{'echo'} & LOG_ECHO_RUN) == LOG_ECHO_RUN);
  $self->{'counter'}->{'log'}++ if ($self->{'config'}->{'log'});;
  $self->{'counter'}->{'run'}++;
}
...



pl и pm файлы в кодировке UTF8.
log-файлы тоже в кодировке UTF8.
Но при этом сегодня в логе заметил такую строку:
Код: plaintext
2016-06-10 07:05:03: [16865] *** Завершено, время рабојы: 2
Как она могла получиться?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Perl, загадочные трансформации кириллицы в UTF
    #39264932
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мистика объяснилась банальным образом.
Файл я просматривал с помощью mc.
А он почему-то в каких-то редких случаях при отображении заменял русские буквы (например "т") на английские (например "j").
Если текст выводить в консоль или открывать другим редактором, то все нормально.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl, загадочные трансформации кириллицы в UTF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]