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());