我去收自己163邮箱中的头20封邮件,有19封的标题是正常的,只有百度知道的是乱码。如果我将编码从iso8859-1转到gb2312,那么百度的正常了,其他的就乱码了。我用System.out.println(((MimeMessage)messages[i]).getHeader("SUBJECT")[0]);来输出相关信息,发现其他19封邮件都是=?GBK?B?、=?UTF-8?B?、=?GB2312?B?开头的,但是百度的邮件还是乱码。试过了csdn上哦很多办法,还是得不到解决。我在想,有没有能够判断字符串是什么编码集的办法?

解决方案 »

  1.   

    用GBK或者 utf-8 试试   
      

  2.   


    转成GBK是可以,但是我是想针对某一些邮件进行转码
      

  3.   

    如果是javamail发送的带中文别名的邮件,收件时需要转码才能显示中文,不然乱码。
    如果是outlook express发送的带中文别名的邮件,收件时不需要转码就能显示中文,不然乱码。
    所以如果收件箱内同时有两种邮件,必然一部分会乱码。