我有一个表单的电子邮件主题:
=?utf-8?B?T3.....?=
电子邮件的正文是utf-8 base64编码 – 并且解码得很好。
我目前正在使用Perl的Email :: MIME模块来解码电子邮件。
=?utf-8分隔符的含义是什么?如何从此字符串中提取信息?
解决方法
encoded-word
令牌(根据
RFC 2047)可以出现在某些标题的值中。它们解析如下:
=?<charset>?<encoding>?<data>?=
在这种情况下,Charset是UTF-8,编码是B,这意味着base64(另一个选项是Q,这意味着Quoted Printable)。
要阅读它,首先解码base64,然后将其视为UTF-8字符。
另请阅读各种Internet邮件RFC以获取更多详细信息,主要是RFC 2047。
由于您使用的是Perl,因此可以使用Encode::MIME::Header:
SYNOPSIS
06001
ABSTRACT
This module implements RFC 2047 Mime
Header Encoding. There are 3 variant
encoding names; MIME-Header,MIME-B
and MIME-Q. The difference is
described below06002