LINUX.ORG.RU

История изменений

Исправление AITap, (текущая версия) :

«\x{номер}» означает некоторый юникодный символ, и если его номер больше 255, Perl не знает, в какую кодировку его кодировать при выводе куда-либо. При этом он бросает warning и кодирует его в UTF-8 за неимением лучшего варианта.

Если записать туда сразу символы в какой-то кодировке (например, строку «/пролог»), Perl не будет задумываться над вопросом, во что кодировать строку, потому что в ней будут не символы с номером >255, а байты.

За преобразования между символами и байтами отвечает модуль Encode. Раз уж конфиг выполняется как Perl'овая программа, можно попробовать сделать так:

use Encode::Locale;
use Encode 'encode';
...;
$Conf{BackupFilesOnly} = {
  'D$' => [
    '/CHESTER/volumouse_beta',
    '/TorrentSMASHA/tmp',
    encode(locale => "/\x{43f}\x{440}\x{43e}\x{43b}\x{43e}\x{433}"),
  ]
};

Encode::Locale попытается определить, в какую кодировку кодировать символы, а BackupPC достанется набор байт, который ему и нужен.

Исходная версия AITap, :

«\x{номер}» означает некоторый юникодный символ, и если его номер больше 255, Perl не знает, в какую кодировку его кодировать при выводе куда-либо. При этом он бросает warning и кодирует его в UTF-8 за неимением лучшего варианта.

Если записать туда сразу символы в какой-то кодировке (например, строку «/пролог»), Perl не будет задумываться над вопросом, во что кодировать строку, потому что в ней будут не символы с номером >255, а байты.

За преобразования между символами и байтами отвечает модуль Encode. Раз уж конфиг выполняется как Perl'овая программа, можно попробовать сделать так:

use Encode::Locale;
use Encode 'encode';
...;
$Conf{BackupFilesOnly} = {
  'D$' => [
    '/CHESTER/volumouse_beta',
    '/TorrentSMASHA/tmp',
    encode(locale => "/\x{43f}\x{440}\x{43e}\x{43b}\x{43e}\x{433}"),
  ]
};

Encode::Locale попытается определить, в какую кодировку кодировать символы, а BackupPC достанется набор байт, который ему и нужен.