使用FusionChart的setDataURL填充圖表數據的時候很容易出現"invalid data xml"的錯誤。服務器
緣由:xml文件不可用,多是中文編碼的問題。(編碼
當前xx.xml文件缺少BOM標記(Byte Order Mark)url
)1,若是是xx.xml文件則加上<?xml version="1.0" encoding="gb2312"?>spa
在此必定是gb2312或者gbk編碼,不然會出現中文亂碼問題。orm
2,若是是指向後臺地址好比說xx.action 等若還有?xxx=xx&xx=xx等參數將url編碼js採用 escape(url);服務器端建立的xml寫入response時指定編碼gb2312/gbk避免中文亂碼或者指定utf-8則必須加上BOM標記xml
即:utf-8
byte[] utf8Bom = new byte[] { (byte) 0xef, (byte) 0xbb, (byte) 0xbf };it
String utf8BomStr = "";io
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");