ajax无法弹出下载框,以及乱码有关问题

ajax无法弹出下载框,以及乱码问题

一个数据展现的功能需要实现,技术是highchart,还是比较不错的,从美观性,易用性和可扩展性上来考虑的话,可以选择。近期开发的时候还是积累了一点点的功能点,首先是下载功能。对于下载,是通过集成插件的形式,但是请求都是ajax,而ajax对于返回的数据流的形式是无法处理的,也就是说想让下载请求发出后,弹出提示框是无法成功的,最终只能通过window.open()来完成。

 

下载数据,因为页面已经有,所以不需要再次查询,而是直接从页面上获取。页面传值时,首先碰到的问题就是中文乱码,我的处理是这样的:

 

页面对字符参数进行编码(编码时应该采用的是js所处页面的pageEncoding):

dataParams = encodeURI(title+"@"+xAxisParam+"@"+yAxisValue);

 

后端重新得到数据初始的流的形式,再在解码:

String dataParams = "";

try {

dataParams = new String(getRequest().getParameter("dataParams").getBytes("iso8859-1"),"utf-8");

} catch (Exception e) {

e.printStackTrace();

}

 

简单说明一下:

乱码问题,无非是编码集问题,稍微需要注意。

页面能显示中文,那么pageEncoding肯定是中文相关的编码集,比如gbk,gb2312,utf-8

 

对于utf-8,似乎具有一统天下的功能(英文占用一个字节,中文,日文等占用3个字节),所以对于需要解码的原始数据字节流,用utf-8进行解码,基本都是可以的