FusionCharts的中文乱码问题 (转)
在实际工作中刚开始遇到最多的问题就是中文乱码问题,这也是我收到的邮件中朋友们遇到的最多的问题。今天我就在这里总结一下通用的处理方案。希望能对大家有所帮助。
一.调用动态的xml字符串
如果程序是访问动态的xml字符串,这个时候出问题的情况很少,因为生成动态xml字符串的过程中一直保持utf-8状态就OK了。
二.调用静态的xml文件
如果程序是调用静态的xml文件,这个时候出问题的情况就很多了。从我收到的邮件中,大部分都是访问静态的xml文件,也是出问题最多的情况。
这时分两种情况,第一种情况是这个静态的xml文件是你自己动态生成的:那么在你动态生成的时候你需要保存为gbk格式的文件,而非utf-8格式的文件,这样中文就不会有乱码了。第二种情况是这个文件是你拿官方的xml文件改编的:那么你需要把此文件另存为gbk格式的文件,就OK了。
三.link传参出现乱码问题
例:link="JavaScript:myJSFunction('USA', 235);"
link="JavaScript:myJSFunction('中文', 235);"//此时中文会出现乱码
这是一个网友给我发邮件时遇到的问题,其实之前我没有遇见过此问题,因为我之前用到的link里面都只传了数字或英文的参数,还没有传过中文参数。后来我就自己测试了一下,确实存在此问题,无论用何种方式在何种地方去转码都无法解决此问题。我当时也不知道解决方案,过了几个小时脑袋突然灵光一闪,记得自己好像在FusionCharts的官方文档里看到过关于link的文章。那个周六,我花了半天时间把FusionCharts V3.1 API文档,从头到尾翻看了3遍,还是没找到。我当时很郁闷啊,还是不甘心,然后我就在FusionCharts V3.2 API上面找。终于功夫不负苦心人,让我给找到了。见图:
原文如下。
Note: Internally the chart decodes a Url that you set as link. Before invoking the link it again encodes the Url. If you are passing multilingual characters via a Url or do not want this decode-encode mechanism to be handled by chart you can set unescapeLinks='0' in <chart> element of the chart's XML data。
就是说你在xml文件的chart属性中添加 unescapeLinks='0' ,那你的js乱码问题就轻松解决啦。
四. 结束语
以上遇到的乱码问题,应该是FusionCharts中文乱码的常见问题。如果还有其他的问题,以及类似问题的其他解决方案,请email给我,谢谢。
最后还是鼓励大家多看官方文档,虽然我个人觉得V3.1 API比V3.2 API做的好,但V3.2 API里面有很多新东西,大家还是要多看。
以上内容参考文献:FusionChartsV3.1 API && FusionChartsV3.2 API
原文地址:http://wangyaobeijing.blog.163.com/blog/static/158330320118149753377/
在实际工作中刚开始遇到最多的问题就是中文乱码问题,这也是我收到的邮件中朋友们遇到的最多的问题。今天我就在这里总结一下通用的处理方案。希望能对大家有所帮助。
一.调用动态的xml字符串
如果程序是访问动态的xml字符串,这个时候出问题的情况很少,因为生成动态xml字符串的过程中一直保持utf-8状态就OK了。
二.调用静态的xml文件
如果程序是调用静态的xml文件,这个时候出问题的情况就很多了。从我收到的邮件中,大部分都是访问静态的xml文件,也是出问题最多的情况。
这时分两种情况,第一种情况是这个静态的xml文件是你自己动态生成的:那么在你动态生成的时候你需要保存为gbk格式的文件,而非utf-8格式的文件,这样中文就不会有乱码了。第二种情况是这个文件是你拿官方的xml文件改编的:那么你需要把此文件另存为gbk格式的文件,就OK了。
三.link传参出现乱码问题
例:link="JavaScript:myJSFunction('USA', 235);"
link="JavaScript:myJSFunction('中文', 235);"//此时中文会出现乱码
这是一个网友给我发邮件时遇到的问题,其实之前我没有遇见过此问题,因为我之前用到的link里面都只传了数字或英文的参数,还没有传过中文参数。后来我就自己测试了一下,确实存在此问题,无论用何种方式在何种地方去转码都无法解决此问题。我当时也不知道解决方案,过了几个小时脑袋突然灵光一闪,记得自己好像在FusionCharts的官方文档里看到过关于link的文章。那个周六,我花了半天时间把FusionCharts V3.1 API文档,从头到尾翻看了3遍,还是没找到。我当时很郁闷啊,还是不甘心,然后我就在FusionCharts V3.2 API上面找。终于功夫不负苦心人,让我给找到了。见图:
原文如下。
Note: Internally the chart decodes a Url that you set as link. Before invoking the link it again encodes the Url. If you are passing multilingual characters via a Url or do not want this decode-encode mechanism to be handled by chart you can set unescapeLinks='0' in <chart> element of the chart's XML data。
就是说你在xml文件的chart属性中添加 unescapeLinks='0' ,那你的js乱码问题就轻松解决啦。
四. 结束语
以上遇到的乱码问题,应该是FusionCharts中文乱码的常见问题。如果还有其他的问题,以及类似问题的其他解决方案,请email给我,谢谢。
最后还是鼓励大家多看官方文档,虽然我个人觉得V3.1 API比V3.2 API做的好,但V3.2 API里面有很多新东西,大家还是要多看。
以上内容参考文献:FusionChartsV3.1 API && FusionChartsV3.2 API
原文地址:http://wangyaobeijing.blog.163.com/blog/static/158330320118149753377/