echart是百度推出的js图标包,最近刚好需要用到制表,就试用下,感觉不错。
最开始使用链接形式传递图标数据,代码如下:
response.setCharacterEncoding("utf-8");
response.sendRedirect("focus.jsp?result="+info);
在echart中,直接使用var param = window.location.search;获取参数。
使用这种形式的一个问题是带数据参数的链接地址是在地址栏直接显示的,因此换了request的方法:
info = URLEncoder.encode(URLEncoder.encode(info, "utf-8"));
request.setCharacterEncoding("utf-8");
request.setAttribute("result", info);
RequestDispatcher dispatcher = request.getRequestDispatcher("/focus.jsp");
dispatcher.forward(request, response);
在echart中,使用
var param = document.getElementById("result").value;
param = decodeURI(param).replace(">", "");
这里使用了replace因为参数最后会多出一个”>”符号,影响后面的解析;
但这时产生了一个问题,就是传递过来的参数都正常显示中文,但原本写在echart中的中文却显示出了乱码“???”。
纠结了很久,最后才发现是跳转的servlet中的PrintWirter out = esponse.getWriter();造成的问题。
删除这一句,问题解决。
或者调整顺序为:
response.setCharacterEncoding("UTF-8"); // 先指定输出流的编码
PrintWriter out = response.getWriter(); // 再拿到输出对象 response.setContentType("text/html;charset=UTF-8");
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/test/test2.jsp"); requestDispatcher.forward(request, response);
问题解决
本文详细描述了在使用ECharts图表时遇到中文乱码问题的解决过程,包括使用request方法替代链接传递数据,调整输出流编码顺序,以及解决中文乱码的具体步骤。
3706

被折叠的 条评论
为什么被折叠?



