解决使用FusionCharts以后从后台获取数据中文乱码的问题

  在使用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

  这样就可以避免影响到其他接口的编码.

posted @ 2013-12-27 15:09  小小有  阅读(417)  评论(0编辑  收藏  举报