当前位置: 技术问答>java相关
javamail 中发邮件时中文附件名的问题
来源: 互联网 发布时间:2015-10-23
本文导语: 我在发中文文件名的时个都是乱??????不知道如何解决,请指教。用string.getBytes("iso-8859-1")没用。 | 还是我给你找来吧! 先用: 用MimeUtility.encodeText() 接受时用MimeUtility.decodeText() 当处理不了时,...
我在发中文文件名的时个都是乱??????不知道如何解决,请指教。用string.getBytes("iso-8859-1")没用。
|
还是我给你找来吧!
先用:
用MimeUtility.encodeText()
接受时用MimeUtility.decodeText()
当处理不了时,用:
javamail附件中文乱码:
/*
@从BodyPart中提取使用ISO-8859-1编吗的文件名
@因为BodyPart.getFilename()过程已经对文件名作了一次编码,有时不能直接使用
*/
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
先用:
用MimeUtility.encodeText()
接受时用MimeUtility.decodeText()
当处理不了时,用:
javamail附件中文乱码:
/*
@从BodyPart中提取使用ISO-8859-1编吗的文件名
@因为BodyPart.getFilename()过程已经对文件名作了一次编码,有时不能直接使用
*/
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