我解析电子邮件,发现部分带有编码:7bit 如何将这部分的文本转换为纯文本?我用 perl
问问题
1198 次
2 回答
1
Content-Transfer-Encoding: 7bit
表示该文本已经是普通的旧 ASCII 文本。无需转换。(好吧,除非Content-Type
标题指示非基于 ASCII 的字符集,但这些非常罕见,尤其是 7 位文本。)
于 2010-12-16T19:41:18.987 回答
0
听起来您有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
如果编码数据看起来与上述任何一个示例不同,请发布确切的格式,以便我们确定它是什么。
于 2010-12-16T11:06:28.810 回答