Похоже, у вас есть UU-кодированные данные (более старый метод) или MIME-кодированные .Чтобы справиться с этим, вы можете использовать Convert :: UU и MIME :: Base64 CPAN соответственно.
Для использования MIME :: Base64 (или его чистоРеализация Perl, MIME :: Base64 :: Perl):
use MIME::Base64::Perl;
my $decoded = decode_base64($encoded);
Как вы узнаете разницу?
Современный кодированный в MIME текст выглядит следующим образом (особеннообратите внимание на заголовок MIME-Version:
, который сообщает вам, что он MIME-закодирован, а также заголовок Content-Transfer-Encoding
, который сообщает вам базу кодирования - если это не base64, вам нужен другой модуль CPAN:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="frontier"
This is a message with multiple parts in MIME format.
--frontier
Content-Type: text/plain
This is the body of the message.
--frontier
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
UU-кодированный текст будет выглядеть примерно так:
begin 644 cat.txt
#0V%T
`
end
Если закодированные данные выглядят иначе, чем любой из приведенных выше примеров, пожалуйста, опубликуйте точный формат, чтобы мы могли определить, что это такое.