我也做过用过java mail时,收邮件的时为这个乱码问题简直焦头烂额,不同的邮件服务器还各有不同,至于你说的这个问题
  以"=?gb2312?B?"打头的是BASE64编码的标志
可以用javax.mail.internet.MimeUtility 的 decodeText方法解码如果是BASE64格式的用new String(str.getByte("iso8859_1"),"gbk")即可我不知道你的java mail的版本是不是最新的,以我的经验,目前java mail的MimeMessage
的getSubject() ,getFrom()之类的方法获得都是已经解码了的字符,至少解了BASE64的编码,具体你自己试一试吧

解决方案 »

  1.   

    上面的有句话漏掉了一个关键的副词
      如果  不   是BASE64格式的用new String(str.getByte("iso8859_1"),"gbk")即可!!
      

  2.   

    Message message[] = folder.getMessages();
    MimeMessage mm=(MimeMessage)message[1];
    mm.getEncoding();//不知道可不可以得到当前的编码
    试试把,我没有试过;
    至于"=?gb2312?B?1ck9ba"这种乱码,如果是邮件服务器或者在网络传输过程中产生的,好像没有办法解决吧?
    如果是你的应用产生的,按照你的应用的编码还原吧
      

  3.   

    String encoding = response.getCharacterEncoding();      String str = new String(strTitle.getBytes(encoding),"gbk");
      

  4.   

    搂主可以查看以前的帖子。我以前也碰到过编码的问题。特别是当邮件以html格式发送时候就会出现乱玛问题。看一下我以前的帖子。
    http://community.csdn.net/Expert/topic/2657/2657235.xml?temp=.6036493
    特别注意这句:
    msg.setDataHandler(new DataHandler(body, "text/html"));
    要改为:
    msg.setDataHandler(new DataHandler(body, "text/html;gb2312"));这个是半年前的事情了。当时我测试了几个服务器收邮件都没有出现乱玛
    现在记性不好了。要是有什么错误就不好意思了:)