ilostmyid2 Ответов: 0

960923 - преобразование последовательности байтов в правильные символы


Я использую это сайт чтобы преобразовать последовательность байтов следующим образом:

РабÑ"нÐ

в правильные последовательности символов, подобные этой:

Рабыни

Похоже, что сайт декодирует последовательности UTF8 в их исходные символы. По какой-то причине некоторые имена моих файлов повреждены, и мне нужно преобразовать их обратно в оригинал.

Поскольку количество файлов не меньше, я решил написать для этой цели perl-скрипт. Я попробовал это сделать

#!/usr/bin/perl
use utf8;
 str = "Рабыни.avi";
utf8::decode($str);
binmode STDOUT, ":utf8";
print "$str\n";


в качестве теста на одно имя файла. При запуске скрипта я перенаправляю вывод в файл. Когда я вижу содержимое файла, я вижу, что содержимое совпадает с входной строкой, и преобразование не производится. Это происходит в то время как выходные данные согласуются с тем, что сайт преобразует для последовательностей, подобных этой:

анÐ3елоÐ2

Я попытался запустить скрипт как на Linux (Ubuntu), так и на Windows с помощью ActivePerl, и оба они дали один и тот же результат. Сосредоточившись на Windows, в чем, по-вашему, заключается ошибка скрипта?

Спасибо

Что я уже пробовал:

Я попытался вручную переименовать файлы, но так как их много, это требует времени и усилий.

0 Ответов