FusionCharts中国語文字化けし



FusionChartsの使用中、中国語の漢字を表示する必要があり、文字化けしに遭遇することが多い.横長座標の文字化けし、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.グラフィックを追加するクリックイベント:リンク内の中国語の文字化けしを解決する
xml:    link="JavaScript:showName('Java ')"

js:       function showName(name){
		alert(name); // 
	}


     
    3.使用参考:1.xml形式のテキストストリームを生成するには、パッチを使用するかdom 4 jを使用して生成します.
      
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>";

dom 4 jコンポーネントによる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>