Конвертировать 7-битный текст в обычный текст - PullRequest
0 голосов
/ 16 декабря 2010

Я проанализировал сообщение электронной почты и нашел часть с кодировкой: 7 бит, как можно преобразовать текст этой части в обычный текст?я использую Perl

Ответы [ 2 ]

1 голос
/ 16 декабря 2010
Content-Transfer-Encoding: 7bit

означает, что текст уже обычный старый текст ASCII. Нет необходимости в конвертации. (Хорошо, если заголовок Content-Type не указывает кодировку не на основе ASCII, но это довольно редко, особенно с 7-битным текстом.)

0 голосов
/ 16 декабря 2010

Похоже, у вас есть 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

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

...