将7位文本转换为纯文本perl

时间:2010-12-16 10:42:25

标签: perl parsing 7-bit

我解析了电子邮件消息,我找到了编码的部分:7bit 如何将此部分的文本转换为纯文本? 我用perl

2 个答案:

答案 0 :(得分:1)

Content-Transfer-Encoding: 7bit

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

答案 1 :(得分:0)

听起来你有UU-encoded数据(旧方法)或MIME-encoded。要解决此问题,您可以分别使用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

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