最近在项目开发中,处理文件下载时,出现中文文件名乱码的现象。以下是解决方法的小记。
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"参数设置.
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明