在使用FusionCharts 的时候 ,发现了一个非常奇怪的问题, 一旦在页面上加入一个chart组件, 不管给不给数据, 从后台取到的数据, 中文就全变成了乱码.
由于我使用的是object array的数据源方式, 不能和xml一样设置数据源文件的编码, 最后, 各种尝试各种搜索, 终于找到了结症所在!
解决办法就是:
获取数据之前先设置系统使用的字符编码
System.useCodePage = false; //页面不使用系统默认的编码方式
乱码果然消失了!
经过研究, 发现,chart在加载以后, 会自动去设置一次数据源, 而在每次加载数据源之前的时候, FusionCharts很可能就做了System.useCodePage = true;的动作, 导致了页面编码变成了使用系统默认的编码方式,于是中文就显示乱码了
所以, 需要在每一次chart加载完数据以后,都要设置一下System.useCodePage = false;
而FusionCharts初始的时候 如果没有给他设置数据源,就会出现LoadDataErrorText, 所以可以监听FCDataLoadErrorEvent这个事件 设置System.useCodePage = false, 并且在每次加载数据之前, 都设置一下System.useCodePage = false
这样就可以避免影响到其他接口的编码.