开发的时候遇到输入中文的时候是很麻烦的,经常性会出现乱码,而且由于环境不同,乱码问题的解决方式也不相同。最近在做java EE开发,自己专门详细了解了这个环境下乱码问题的解决方法。不用对乱码问题做出什么分类,想看原因的可以百度,这里只写如何解决中文乱码问题。
首先,开发环境用到tomcat,jsp,servlet,mysql,因此就要都保证它们的编码格式可以支持中文字符。
mysql的处理:在安装的时候字符集选择UTF-8,如果不是的话重装。
tomcat的处理:找到tomcat目录:
打开server.xml,找到对8080端口的设置部分,添加URIEncoding=“UTF-8”,就可以了。如:<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
JSP处理:在jsp页面添加编码格式,
<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">
Servlet处理,在进行业务处理之前添加2行代码:
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("UTF-8");
JSP和Servlet如果很多的话可以使用过滤器。对于这4个地方进行处理之后就没有中文乱码问题了。当然有可能工作环境不是UTF-8,自己也应该把工作环境的编码集改了,不过这个很少出现。
上面的是一个servlet对应一个JSP的情况,当JSP之间传值的时候按照上面的处理是有问题的。不过也容易解决,要知道JSP在后台也是转换为servlet,因此把servlet的中文处理方法加进JSP里面,JSP之间传值的中文乱码问题就解决了。