当前位置: 技术问答>java相关
javamail附件中文名字乱码问题!
来源: 互联网 发布时间:2015-09-29
本文导语: 解决办法: 1: 用我下面给提供的方法得到附件名,然后如下处理 就可以了 String filename= new String(getISOFileName(part).getBytes("ISO-8859-1"),"gb2312"); 这样就解决了附件名字的中文问题。 public static String getISOFileName(Part body...
解决办法:
1:
用我下面给提供的方法得到附件名,然后如下处理
就可以了
String filename= new String(getISOFileName(part).getBytes("ISO-8859-1"),"gb2312");
这样就解决了附件名字的中文问题。
public static String getISOFileName(Part body){
//设置一个标志,判断文件名从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
1:
用我下面给提供的方法得到附件名,然后如下处理
就可以了
String filename= new String(getISOFileName(part).getBytes("ISO-8859-1"),"gb2312");
这样就解决了附件名字的中文问题。
public static String getISOFileName(Part body){
//设置一个标志,判断文件名从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