客户端
function downLoad(tdFileId){
var paySaveFileName = document.getElementById(tdFileId).paySaveFileName;
var payUploadFileName = document.getElementById(tdFileId).payUploadFileName;
payUploadFileName = escape(encodeURIComponent(payUploadFileName));
if(paySaveFileName!=''&&isExist(paySaveFileName)){
window.location.href="<%=URL%>orderInfo/orderDownLoad.action?downFileName="+payUploadFileName+"&ext2="+paySaveFileName;
}else{
alert("付款凭证不存在,请重新上传!");
}
}
通过escape(encodeURIComponent(payUploadFileName)),encodeURIComponent()函数可把字符串作为 URI 组件进行编码,escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串编码。
struts2配置文件:
<!-- 下载报告的Action定义 -->
<action name="orderDownLoad" class="orderInfoAction">
<result name="success" type="streamx">
<param name="contentType">text/plain</param>
<param name="inputName">inputStream</param>
<!-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">5242880</param>
</result>
</action>
java代码:
public String getDownloadFileName() throws Exception {
String downFileName =request.getParameter("downFileName");
downFileName = URLDecoder.decode(downFileName, "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename="+new String(downFileName.getBytes("gb2312"),"iso-8859-1"));
try {
// 一定要这样处理下,转换成ISO8859方式的西欧字符集。
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
其中downFileName = URLDecoder.decode(downFileName, "UTF-8");是对转义过的汉字重新转义回汉字。
这里注意,开始部署在windows下,没有
response.setHeader("Content-Disposition", "attachment; filename="+new String(downFileName.getBytes("gb2312"),"iso-8859-1"));, 这段代码,后来部署到linux上,下载文件的时候就会乱码了,于是网上搜了下,必须设置下header才能避免不乱码。
分享到:
相关推荐
1.文件无法下载 2.在linux硬盘中看到创建的文件夹及文件名称为乱码,数据库中存储的文件夹及文件名称没有乱码
linux下中文乱码问题,全面的讲解了linux中文乱码的解决方法,
解决linux环境中出现中文乱码的情况。
这篇文档很详细的讲解了linux的乱码问题 之前发过一次的那个文档是我从网上找的 这一个是我自己在ubuntu系统上面试过之后加上自己的修改后转换成pdf文件 我的博客http://blog.csdn.net/voldermort827 来自大懒猴...
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...
Linux乱码问题解决方案.docx
linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.
Linux下中文文件名乱码问题的详解 - CSDN博客原创2016年06月12日 09:59:40标签:压缩 / linux / 乱码Linux下中文文件名乱码
文件下载,二进制流转换成文件 解决中文名乱码的问题
Linux中的中文文件在ssh终端中显示为乱码。原本在Windows中显示正常的文件,上传到Linux中之后,全变成乱码,有什么好的解决方法呢,经过本人多次实验,终于得到一个解决方法
1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况。因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况。 2.倘若还有乱码,以及其他应用程序乱码,则尝试如下...
VMware Workstation自动安装和Linux中文乱码问题
本工程用于研究Java Web文件下载 本工程编码方式:UTF-8 说明:本工程下载功能解决了使用IE11下载文件时所出现的乱码问题
可以帮助你转换由于Windows与Linux文件编码不兼容导致的乱码,批量转换文件编码的工具。基于GTK+适用于linux
Linux中文乱码问题.pdf
解决LINUX中中文显示乱码的问题。
乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理...
彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题 本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE...
java 解析csv文件例子,csv文件 中文乱码问题