关于网友提出的“ Struts2 文件下载时中文编码问题”问题疑问,本网通过在网上对“ Struts2 文件下载时中文编码问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Struts2 文件下载时中文编码问题
描述: private ServletContext context;
private String filename;
private String mimeType;
private InputStream inStream;
/**
* 下载公文
* @return
*/
public String download()throws Exception {
System.out.println(filename+"aaaaaaa");
mimeType = context.getMimeType(filename);
System.out.println(mimeType);
return SUCCESS;
}
public InputStream getInStream() {
inStream = context.getResourceAsStream("/upload/"+filename);
if(inStream == null){
System.out.println("下载");
}
return inStream;
}
public String getFilename() {
try {
return new String(filename.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
System.out.println("fail");
return this.filename;
}
}
public void setFilename(String filename) {
try {
filename = new String(filename.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.filename = filename;
}
${mimeType};charset=ISO8859-1
inStream
attachment;filename="${filename}"
只要是中文就会乱码!
jbpm?ssh????.docaaaaaaa
application/vnd.ms-word
FTP 上的编码是UTF-8
项目的编码是GBK
页面编码是GB18030 这几三项不可以更改
解决方案1: 在Web.xml里边加个过滤器不行吗
解决方案2: 是配置文件,, understand?
html标签是不执行OGNL 表达式的, 你这样写当然给你直接扔过去
解决方案3: ${mimeType};charset=ISO8859-1
inStream
attachment;filename="${filename}"param>
不要搞8859-1
我刚才要你改的地方是红色的位置
解决方案4: 配置文件里
下载的时候肯定只传ID过去撒 哪有传Name的!
解决方案5: struts2编码最好统一UTF-8,否则乱了你哭死都难得解决问题的
解决方案6: attachment;filename="@java.net.URLEncoder@encode(${filename}, 'UTF-8')"
这样
解决方案7: 提供思路,编程还是要靠自己啊!
解决方案8: API
你没有吗?
解决方案9: java.net.URLDecoder
解决方案10: java.net.URLEncoder
以上介绍了“ Struts2 文件下载时中文编码问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2279523.html