解码base64和utf-8中的电子邮件主题字符串

时间:2014-12-27 15:57:21

标签: java email utf-8 base64 encode

我的课程作业是电子邮件客户端,我使用pop3来获取电子邮件字符串,如:

  

主题:=?UTF-8?B?6L + Z5piv5Li76aKY?=

然后我用regexp获取 6L + Z5piv5Li76aKY ,用Base64解码它,我的Eclipse工作区是UTF-8。它显示如下:���L_���/�y�+�..�,但它本来就是中文这是主题

如何正确显示?电子邮件的内容运作良好,并且使用Base64和UTF-8进行编码,但主题无法正常工作。

这是代码

if (buf.startsWith("Subject:")) {

    String regex = "=\\?UTF-8\\?B\\?(.*)\\?=";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(buf);
    while (m.find()) {
        subject = MyBase64.getFromBASE64(m.group(1));
    }

    subject = MyBase64.getFromBASE64(buf.substring(8));
    System.out.println(subject);
}

1 个答案:

答案 0 :(得分:0)

嗯,我的方法是对的。 而我只是犯了一个愚蠢的错误〜抱歉:D