有的可能已经转过编码了
你试试看
String tempstr=new String(message.getSubject().getBytes("gb2312"),"iso-8859-1"));
tempstr=tempstr.getBytes("iso-8859-1"),"gb2312");
或者不要用gb2312,用GBK

解决方案 »

  1.   

    我给你一个方法吧。
     /**
    * 对字符串进行解码处理
    * @param s 要转换的字符串
    * @return 返回转换后的字符串
    */
    public static String decodeWord(String s) {
            System.out.println("s========decode="+s);
            if (s==null||s.equals("")){
                return "";
            }
            if(!s.startsWith("=?")){
                return s; //如果没有编码就进行内码转换,调用str类里getstr()
            }
            if (s.indexOf("=?")!=-1) {
            int i = 2;
            int j;
            if((j = s.indexOf(63, i)) == -1)
                return s;
            String s1 = (s.substring(i, j));
            i = j + 1;
            if((j = s.indexOf(63, i)) == -1)
                return s;
            String s2 = s.substring(i, j);
            i = j + 1;
            if((j = s.indexOf("?=", i)) == -1)
                return s;
            String s3 = s.substring(i, j);
            try {
                ByteArrayInputStream bytearrayinputstream = new ByteArrayInputStream(s3.getBytes());
                Object obj;
                if(s2.equalsIgnoreCase("B"))
                    obj = new com.sun.mail.util.BASE64DecoderStream(bytearrayinputstream);
                else
                if(s2.equalsIgnoreCase("Q"))
                    obj = new com.sun.mail.util.QDecoderStream(bytearrayinputstream);
                else
                    return s;
                int k = bytearrayinputstream.available();
                byte abyte0[] = new byte[k];
                k = ((InputStream) (obj)).read(abyte0, 0, k);
                return new String(abyte0, 0, k );
            }        catch(Exception e) {
    return s;
            }
            }
            return s;
        }
      

  2.   

    赞同上面的看法,我在处理pop3的邮件时,也遇到了类似的问题,处理的方法是:先判断subject的编码类型,如果没有转换编码类型,那么content就需要转码。
      

  3.   

    to wjmmml(笑着悲伤):
    能否给我们说明一下这个方法呢?感激!!!
      

  4.   

    to wjmmml(笑着悲伤):
       我也谢谢你的解码代码,还有一个问题,8bit是什么编码方式呢?