CSDN博客

img ja_II_ck

处理接收到的邮件subject编码问题

发表于2008/9/29 16:38:00  767人阅读

分类: Java Mail

  /**  
  *   对字符串进行解码处理  
  *   @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;  
          }
0 0

相关博文

我的热门文章

img
取 消
img