最近在项目开发中,处理文件下载时,出现中文文件名乱码的现象。以下是解决方法的小记。
1.Action配置:
1 <action name="downloadFile"
2 class="com.xxx.xxx.web.action.common.LoadFileAsInputStreamAction"
3 method="downloadFile">
4 <result name="success" type="stream">
5 <param name="contentType">
6 application/octet-stream;charset=UTF-8
7 </param>
8 <param name="inputName">inputStream</param>
9 <param name="bufferSize">100000</param>
10 <param name="contentDisposition">
11 attachment;fileName="${fileName}"
12 </param>
13 </result>
14 </action>
2.对fileName进行转码:
1 private String convertUnicode(String name) {
2 String filename = null;
3 try { // 支持IE和FireFox
4 filename = new String(name.getBytes("GBK"), "ISO-8859-1");
5 } catch (UnsupportedEncodingException e) {
6 // e.printStackTrace();
7 LOG.error(" ### Convert FileName Error!");
8 }
9 return filename;
10 }
3.修改TOMCAT server.xml:
增加URIEncoding="UTF-8"参数设置.
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明