javaweb window.open 打开中文文件 乱码问题解决

      

     标题翻译成英文是这样的:Load a pdf with a chinese filename from url  ,在使用itext生成pdf之后,在后台将生成的中文名称的pdf放在webroot下的download文件夹内,使用ajax返回,在success方法内,写上打开改路径文件的方法,如下:

<script type="text/javascript"> 
		function downloadWagePdf(){
 			    var usekey="<%=session.getAttribute("USERID")%>";
 				var pdfFilePath = "<%=basePath%>" + "WebRoot\\download\\"
 						+ "测试" + ".xls";
 				window.open(pdfFilePath);


		</script>

    很不幸的是这种方式,打开中文的话,会遇到乱码,如图:
      网上搜了一下window.open方法中文乱码的关键字,大多数都是针对传递的参数是中文的情况,并没有说如果是中文名的文件名乱码问题如何解决,也试了一些编码的格式方法,都么有,原因是因为js默认的是iso-8895的格式,无法识别中文,
   *************所以我用了一个折中的方法,在点击下载pdf的按钮上面,增加一个隐藏的a标签,通过a标签的download属性,修改为中文名称,这是内部已经实现了的,可以识别中文,可以参考如下网址:http://blog.csdn.net/leytton/article/details/38545299 ,如下完整代码:
  <a id="dlink"  style="display:none;"></a>
	<li style="text-align:left">οnclick="downloadWagePdf();">
	<i class="icon-upload-alt" style='cursor:pointer'> 导出</i>
	</p></li>

     以下是使用a标签的属性,修改跳转的属性,下载文件,不适用window.open()方法:
	<script type="text/javascript"> 
		function downloadWagePdf(){
// 			    var usekey="<%=session.getAttribute("USERID")%>";
 				var pdfFilePath = "<%=basePath%>" + "WebRoot\\download\\"
 						+ "bank_wage" + ".xls";
// 				window.open(pdfFilePath);

                var titleDate= new Date().Format("yyyy-MM-dd hh-mm-ss");
		        document.getElementById("dlink").href = pdfFilePath;
                document.getElementById("dlink").download = "银行流水报表"+titleDate+".xls";
                document.getElementById("dlink").click();

			}
		</script>

      这样就可以避免中文名称的文件,打开是乱码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值