FusionCharts 3.1 破解版 中文问题 setDataURL 传值问题

1.【FusionCharts 3.1 中文问题】

这个在网上查了很多,说是在设置数据xml路径时有几种方法,

但是经试验,FusionCharts 3.1只支持setDataURL()方法。

【例】:

var chart = new FusionCharts("Charts/Column3D.swf", "ChartId", "600", "350", "0", "0");
chart.setDataURL("Data/Column3D.xml");     
chart.render("chartdiv");

此时,在后台生成xml时,当生成的xml包含中文时,一定要先为字符串前加上utf-8 bom技术标示,这样前台就可以读出中文了。

【具体方法】:

try {
			HttpServletResponse response = this.getHttpResponse();
			response.setContentType("text/xml;charset=UTF-8");
			PrintWriter out = response.getWriter();
			StringBuffer sb = new StringBuffer();//生成的数据xml字符串
			
			byte[] utf8Bom =  new byte[]{(byte) 0xef, (byte) 0xbb, (byte) 0xbf};
			String utf8BomStr = new String(utf8Bom,"UTF-8");
			utf8BomStr+=sb.toString();

			out.print(utf8BomStr);
			out.flush();
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

注意:

在设置返回字符集编码时,返回的ContentType一定是text/xml,而不能是text/html.

2.【FusionCharts 3.1 中 setDataURL 传值问题】:

在setDataURL 方法中的URL如果包含参数,使用&将不能正常传值。

【解决办法】:

将URL中的?和&全部换成%@*

【例】:

chart.setDataURL("<%=basePath%>fusionChartCountMunuAction.action%@*id=1%@*type=1%@*chartType=bar%@*dt="+new Date().getTime());

你可能感兴趣的:(FusionCharts)