+ -
当前位置:首页 → 问答吧 → 【求助】 Email::MIME模块:body的utf8转换

【求助】 Email::MIME模块:body的utf8转换

时间:2010-09-28

来源:互联网

现在需要处理一些邮件,要求抽取邮件正文,Email::MIME模块很容易可以解决,但是当遇到-------------------------分割线-----------------
this is a multi-part message in MIME format.

------=_NextPart_000_028E_0195D079.1E0E6B40
Content-Type: text/plain;

charset="utf-8"

--------------------分割线------------------------
charset是utf8的时候,转换过来是乱码(gbk就显示正常),我手工转换ok(代码如下):
  1. my $parsed = Email::MIME->new(\join '',@text);

  2. my @parts = $parsed->parts; # These will be Email::MIME objects, too.
  3. for my $part (@parts)
  4. {
  5.         my $decoded = $part->body;
  6.         say to_gbk( decode( 'utf8',$decoded) );  #转换
  7.         say '*' x 80;
  8. }
复制代码



但是不同的邮件的charset可能不同所以··decode( 'utf8',$decoded)的硬编码就不行了,所以,求如何能解决的方法,例如如何知道源body的charset是什么,模块没有提供类似的方法。谢谢!!

作者: wfnh   发布时间: 2010-09-28

顶起·

作者: wfnh   发布时间: 2010-09-28