-1

我解析电子邮件,发现部分带有编码:7bit 如何将这部分的文本转换为纯文本?我用 perl

4

2 回答 2

1
Content-Transfer-Encoding: 7bit

表示该文本已经是普通的旧 ASCII 文本。无需转换。(好吧,除非Content-Type标题指示非基于 ASCII 的字符集,但这些非常罕见,尤其是 7 位文本。)

于 2010-12-16T19:41:18.987 回答
0

听起来您有UU 编码的数据(旧方法)或MIME 编码的数据。为了解决这个问题,您可以分别使用Convert::UUMIME::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

如果编码数据看起来与上述任何一个示例不同,请发布确切的格式,以便我们确定它是什么。

于 2010-12-16T11:06:28.810 回答