FusionCharts中文亂碼+去logo資源

在使用FusionCharts過程中,需要顯示中文漢字,經常會遇到亂碼情況,1.橫縱座標的亂碼,2.點擊圖形傳值亂碼。下面貼出解決方案。

    1.設置頁面編碼:UTF-8 可以防止橫縱座標中文漢字亂碼

<%@ page language="java" contentType="text/html; charset=UTF-8"  
        pageEncoding="UTF-8"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    <html>  
    ...  
    </html>  

 2.添加圖形的點擊事件:設置  <graph   unescapeLinks="0"> 解決鏈接中傳中文亂碼

xml:    link="JavaScript:showName('Java開發者')"  
      
    js:       function showName(name){  
            alert(name); //會出現亂碼  
        }  
3.使用參考:1.生成xml格式文本流,可以採用拼接,也可以採用dom4j生成
 String msg = "";  
    msg="<?xml version=1.0 encoding=GBK?>";  
    msg+="<graph caption='人物年齡列表' xAxisName='人名' yAxisName='年齡' " +"showNames='1' decimalPrecision='0' formatNumberScale='0'  

baseFont='宋體' baseFontSize='14' unescapeLinks='0'>";  
    msg+="<set name='小明' value='21' color='"+getRandomColor()+"'  link='JavaScript:showName('小明')'  />";  
    msg+="<set name='小強' value='25' color='"+getRandomColor()+"'  link='JavaScript:showName('小強')' />";  
    msg+="<set name='大力丸' value='47' color='"+getRandomColor()+"' link='JavaScript:showName('大力丸')' />";  
    msg+="<set name='主義者' value='85' color='"+getRandomColor()+"'  link='JavaScript:showName('主義者')'/>";  
    msg+="<set name='追夢' value='37' color='"+getRandomColor()+"' link='JavaScript:showName('追夢')' />";  
    msg+="</graph>";  

建議採用dom4j組件生成xml文件
 public String getXMLString(List list){  
            String xmlstr="";  
            Document document = DocumentHelper.createDocument();  
            Element graph = document.addElement("graph");  
            graph.addAttribute("caption", "人物年齡列表");  
            graph.addAttribute("xAxisName", "人名");  
            graph.addAttribute("yAxisName", "年齡");  
            graph.addAttribute("showNames", "1");  
            graph.addAttribute("desimalPrecision", "0");  
            graph.addAttribute("formatNumberScale", "0");  
            graph.addAttribute("baseFont", "宋體");  
            graph.addAttribute("baseFontSize", "14");  
            graph.addAttribute("unescapeLinks", "0");  
            for(int i=0;i<list.size();i++){  
                Element set = graph.addElement("set");  
                Person p = list.get(i);  
                set.addAttribute("name", p.getname());  
                set.addAttribute("value", p.getage());  
                set.addAttribute("color", getRandomColor());  
                set.addAttribute("link", "JavaScript:showName('"+p.getname()+"')");  
            }  
            xmlstr = generateXML(document);  
            return xmlstr;  
        }  
           /** 
         * 通過dom生成xml文件 
         */  
        public String generateXML(Document document) {  
      
            String xmlDoc = "";  
            StringWriter sw = new StringWriter();  
            XMLWriter writer;  
            OutputFormat format = OutputFormat.createPrettyPrint();  
            format.setEncoding("GBK");  
      
            writer = new XMLWriter(sw, format);  
            try {  
                writer.write(document);  
                xmlDoc = sw.toString();  
                URLEncoder.encode(xmlDoc, "utf-8");  
            } catch (IOException e) {  
                System.out.println("生成XML字符串發生異常");  
                e.printStackTrace();  
            } finally {  
                try {  
                    writer.close();  
                    sw.close();  
                } catch (IOException e) {  
                    System.out.println("關閉XML讀寫發生異常");  
                    e.printStackTrace();  
                }  
            }  
            return xmlDoc;  
        }  
      
         /** 
         * 隨即獲得顏色代碼 
         */  
        public String getRandomColor(){  
            //顏色代碼位數6  
            int colorLength=6;  
            //顏色代碼組數  
            char[] codeSequence={'A','B','C','D','E','F', '0','1','2','3','4','5','6','7','8','9'};  
            StringBuffer str=new StringBuffer();  
            Random random=new Random();  
            for(int i=0;i<colorLength;i++){  
                str.append(codeSequence[random.nextInt(16)]);  
            }  
            return str.toString();  
            }  

      
4.頁面顯示
 <script src="<s:url value="js/FusionCharts.js"/>" type="text/javascript" charset="utf-8"></script>  
      
    <script type="text/javascript" charset="UTF-8">  
        $(document).ready(function(){  
            $.ajax({  
                type:'post',  
                url:'doPersonCharts.action',  
                data:'',  
                success:function(msg){  
                  //最後的1.表示link可以顯示,鼠標有手勢            
     var chart=new FusionCharts("FusionCharts/Column3D.swf","chartId1","900","480","0","1");  
                    chart.setDataXML(msg);  
                    chart.render(personForm);  
                },  
                error:function(){  
                    alert("加載失敗,請重新加載...");  
                }  
            });  
        });  
        function showName(name){  
            alert(name);  
        }  
          
    </script>  
      
    <div align="center">  
            <table width="60%" border="0"  name="personForm" id="personForm"></table>  
     </div>  

參數的詳細說明和功能特性:http://www.meisoft.cn/

無logo下載地址:http://download.csdn.net/detail/qiaoshuai0920/9175993

轉載:http://cjp1989.iteye.com/blog/1843776


發佈了97 篇原創文章 · 獲贊 10 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章