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

  /**  
  *   对字符串进行解码处理  
  *   @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;  
          }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值