使用FusionChart的setDataURL填充图表数据的时候很容易出现"invalid data xml"的错误。
原因:xml文件不可用,可能是中文编码的问题。(
当前xx.xml文件缺乏BOM标记(Byte Order Mark)
)1,如果是xx.xml文件则加上<?xml version="1.0" encoding="gb2312"?>
在此一定是gb2312或者gbk编码,否则会出现中文乱码问题。
2,如果是指向后台地址比如说xx.action 等若还有?xxx=xx&xx=xx等参数将url编码js采用 escape(url);服务器端创建的xml写入response时指定编码gb2312/gbk避免中文乱码或者指定utf-8则必须加上BOM标记
即:
byte[] utf8Bom = new byte[] { (byte) 0xef, (byte) 0xbb, (byte) 0xbf };
String utf8BomStr = "";
try {
utf8BomStr = new String(utf8Bom, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
xml = utf8BomStr + "<?xml version='1.0' encoding='UTF-8'?>" + xml;
3,无数据时FusionChart显示 "no data disaply" 提示,如何修改为中文方法如下:
var chart1 = new FusionCharts("Column2D.swf?ChartNoDataText=中文提示", "ChId1", "300", "250", "0", "0");
来源:oschina
链接:https://my.oschina.net/u/560500/blog/79549