JAVA Web开发中前后台数据交互中文乱码问题解决方法及说明
一 、基于BaseServlet (BaseServlet extends HttpServlet),如果BaseServlet中不设置任何编码格式,在其子类QueryCustomer (QueryCustomer extends BaseServlet)中获取到前端传回来的数据乱码???
原因是tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的。
解决方法是:采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换。这样就能得到中文了。
例:custName = new String(custName.getBytes("ISO-8859-1"), "UTF-8");// 解决乱码问题
得到数据进行处理后,再发往前台页面,也需要设置编码格式:response.setContentType("text/html;charset=utf-8");
二、基于BaseServlet (BaseServlet extends HttpServlet)的,如果在BaseServlet中设置了编码格式,子类就不需要设置了,直接获取数据使用即可。