最近在用FusionCharts Free做一个图表的项目,在是用setDataURL时遇到了中文乱码。
编码什么的都设置了UTF-8,可就是不显示,郁闷啊
然后再看官方UTF-8示例的时候发现动态生成的XML需要加上UTF-8 Bom,
示例在\FusionChartsFree\Code\JSP\UTF8Example\目录下。
于是乎。。。
1 Document doc = DocumentHelper.createDocument(); 2 Element root = doc.addElement("graph"); 3 root.addAttribute("showNames", "1"); 4 root.addAttribute("decimalPrecision", "0"); 5 Element set = root.addElement("set"); 6 set.addAttribute("name", "电梯"); 7 set.addAttribute("value", "134"); 8 Element set1 = root.addElement("set"); 9 set1.addAttribute("name", "空调"); 10 set1.addAttribute("value", "122"); 11 HttpServletResponse response = ServletActionContext.getResponse(); 12 PrintWriter out = response.getWriter(); 13 response.setContentType("text/xml;charset=UTF-8"); 14 System.out.println(doc.asXML()); 15 //utf-8标识 16 byte[] utf8Bom = new byte[]{(byte) 0xef, (byte) 0xbb, (byte) 0xbf}; 17 String utf8BomStr = new String(utf8Bom, "UTF-8"); 18 //在xml前加上utf-8标识 19 String xml = utf8BomStr + doc.asXML(); 20 out.write(xml);
终于不乱吗了,哇哈哈。。