1

我设法从 gmail 收到电子邮件,其主题包含 UTF-8 字符,

Subject: =?utf-8?B?5L2g5aW9IOS9oOWlvQ==?=

我搜索了互联网,发现了它的编码引用可打印

我尝试使用显示的代码来解码主题

use MIME::QuotedPrint;

print decode_qp("?utf-8?B?5L2g5aW9IOS9oOWlvQ==?=");

但它打印相同的消息,我也尝试删除?utf-8?但没有用,所以有人可以帮助我将上述主题转换为 utf-8 字符而不是上面的编码

4

2 回答 2

2

使用Encode::MIME::Header模块,如

$ perl -MEncode -le 'print Encode::encode("utf8", \
  Encode::decode("MIME-Header", "=?utf-8?B?5L2g5aW9IOS9oOWlvQ==?="))'
你好 你好

或者

#! /usr/bin/env perl

use v5.10.0;
use strict;
use warnings;

use Encode qw/ decode /;

my $subject = "=?utf-8?B?5L2g5aW9IOS9oOWlvQ==?=";

binmode STDOUT, ":encoding(UTF-8)";
say decode "MIME-Header", $subject;
于 2013-07-24T00:54:44.593 回答
1

使用MIME::Base64?utf-8?B? ,从头到尾删除?=

use MIME::Base64;
print decode_base64('5L2g5aW9IOS9oOWlvQ=='), "\n";
于 2013-07-24T01:10:41.373 回答