欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Javamail中附件中文名字亂碼怎么解決

這篇“Javamail中附件中文名字亂碼怎么解決”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Javamail中附件中文名字亂碼怎么解決”文章吧。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)隆陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

首先判斷郵件體是否有附件:
 object out_content = message[i].getContent();
 if (!(out_content instanceof Multipart)){//不是復(fù)合郵件體,既是不帶附件。
  partname = new String[0];
  return partname;
  }
如果是復(fù)合郵件體,那么就可以調(diào)用如下的方法取得中文文件名:
public  static  String  getISOFileName(Part  body){ 
  //設(shè)置一個標(biāo)志,判斷文件名從Content-Disposition中獲取還是從Content-Type中獲取 
  boolean  flag=true; 
  if(body==null){ 
  return  null; 
  } 
  String[]  cdis; 
  try{ 
  cdis=body.getHeader("Content-Disposition"); 
  } 
  catch(Exception  e){ 
  return  null; 
  } 
  if(cdis==null){ 
  flag=false; 
  } 
  if(!flag){ 
  try{ 
  cdis=body.getHeader("Content-Type"); 
  } 
  catch(Exception  e){ 
  return  null; 
  } 
  } 
  if(cdis==null){ 
  return  null; 
  } 
  if(cdis[0]==null){ 
  return  null; 
  } 
  //從Content-Disposition中獲取文件名 
  if(flag){ 
  int  pos=cdis[0].indexOf("filename="); 
  if(pos<0){ 
  return  null; 
  } 
  //如果文件名帶引號 
  if(cdis[0].charAt(cdis[0].length()-1)=='"'){ 
  return  cdis[0].substring(pos+10,cdis[0].length()-1); 
  } 
  return  cdis[0].substring(pos+9,cdis[0].length()); 
  }else{ 
  int  pos=cdis[0].indexOf("name="); 
  if(pos<0){ 
  return  null; 
  } 
  //如果文件名帶引號 
  if(cdis[0].charAt(cdis[0].length()-1)=='"'){ 
  return  cdis[0].substring(pos+6,cdis[0].length()-1); 
  } 
  return  cdis[0].substring(pos+5,cdis[0].length()); 
  } 
  } 
但是有一種情況下,取得的中文文件名也是亂碼,原因有的郵件服務(wù)器在發(fā)送郵件時,對附件名進(jìn)行了特殊的編碼,解決如上問題的方法如下:
首先:
1)用如上的方法取得中文文件名:
String filename= new String(getISOFileName(part).getBytes("ISO-8859-1"),"gb2312");
然后創(chuàng)建文件,如果發(fā)生FileNotFoundException異常,說明取得的文件名是經(jīng)過特殊編碼的--我們?nèi)〉玫降奈唇獯a的,是亂嗎,那么就要用javamail提供的函數(shù)decodeText進(jìn)行解碼。具體方法如下。
try{
  myFileoutputstream= new FileOutputStream(filename);
  }catch(FileNotFoundException fe){
  try{
  if (filepath.exists()){
  filename = new File(filepath,MimeUtility.decodeText(getISOFileName(part)));
 }catch(Exception e){
 System.out.println("getpart(int i)重新生成文件:"+e.toString());
 }
  }catch(Exception e){
 System.out.println("getpart(int i)重新生成文件:"+e.toString());
 }
}

以上就是關(guān)于“Javamail中附件中文名字亂碼怎么解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:Javamail中附件中文名字亂碼怎么解決
分享URL:http://aaarwkj.com/article30/phdoso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)移動網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)站設(shè)計公司做網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
日韩av大片一区二区三区| 中文字幕免费日本在线| 日韩av在线高清播放| 农村精品少妇久久久久久| 久久国产成人精品免费看| 亚洲成人免费在线一区| 日本中文字幕免费专区| 久久精品亚洲夜色国产av| 国产大学生露脸在线视频| 久久国产精品亚洲欧美| 九九九热在线免费视频| 久久国产三级久久久久久| 日本一区二区三在线观看| 蜜桃av在线播放视频| 一区二区高清免费日本| 亚洲第一青青草原在线| 国产日韩欧美高清免费视频| 免费人成在线观看网站免费观看| 91久久高清国语自产拍| 欧美精品亚洲精品日韩经典| 免费人妻aⅴ中文字幕| 亚洲精品日韩在线欧美| 亚洲成人精品久久久| 91欧美在线激情视频| 日本高清av一区二区| 99热这里只有精品中文| 亚洲成人自拍视频在线观看| 日产极品一区二区三区| heyzo高清中文字幕在线| 日韩国产精品亚洲欧美在线| 国产一级r内射视频播放| 日韩欧美一区二区三区| 国产精品日韩av一区二区| 99热精品在线免费观看| 小明久久国内精品自线| 国产精品水嫩水嫩粉嫩| 丰满人妻少妇一区二区| 在线播放精品免费不卡| 熟女俱乐部五十路六十路| 校园春色亚洲欧美日韩| 精品视频一区二区三区在线观看 |