天天看点

国产安可系统中,导出文件名中文乱码解决方案

       安可系统,顾名思义,安全可靠,具体来说就是基于国产服务器、国产操作系统及国产数据库、中间件等国产核心组件上的安全可靠办公软件,满足正常办公需求。

      目前,WPS、FireFox等软件都对该系统做了适配,满足政府部门正常办公应该没问题。为响应号召,对我们开发的一个系统在安可操作系统上做了测试,基本没有什么大问题。在文件导出的地方,文件名的中文出现了乱码。在windows系统的各个浏览器上都没有问题,分析可能还是编码方式不兼容。

以excel的导出为例:原来采用的的是GBK转ISO8859-1

HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("application/vnd.ms-excel");		
		String saveName = new String(("XXX统计报表.xls").getBytes("GBK"),"ISO8859-1");		
		response.setHeader("Content-disposition", "inline; filename=\""+ saveName + "\";");
           

分析还是编码方式出问题了,于是就开始了编码方式测试。。。

最终,将gbk改为utf-8问题解决。

HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("application/vnd.ms-excel");		
		String saveName = new String(("XXX统计报表.xls").getBytes("UTF-8"),"ISO8859-1");		
		response.setHeader("Content-disposition", "inline; filename=\""+ saveName + "\";");
           

继续阅读