1、通过设置page指令的pageEncoding="UTF-8"属性,来设置jsp文件的保存编码。
2、通过设置page指令的contentType="text/html; charset=UTF-8"属性,来设置浏览器解析本页面的默认编码。
3、对于POST请求的数据,可以在所有的request.getXxx()方法被调用前,设置request.setCharacterEncoding("UTF-8");可以取到正常的中文。
4、Get方式请求的数据,默认情况下无法解析为正常的汉字,需要修改TomCat的配置文件。打开TOMCAT_HOME/conf/server.xml文件,找到区块
<Connector port="8080" protocol="HTTP/1.1" ... />
在其中添加属性 URIEncoding="UTF-8",变为
<Connector port="8080" protocol="HTTP/1.1" ... URIEncoding="UTF-8" />
重启Tomcat后,就可以正常访问汉字了。
5、使用response.sendRedirect()方法跳转页面时如果要传递中文字符,需要调用
java.net.URLEncoder.encode()方法对中文先编码。比如:
response.sendRedirect("./aa.jsp?a="+URLEncoder.encode("爱上对方", "UTF-8"));
6、在建立数据库连接时,可以在连接字符串后跟上指定的字符编码。如:"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF8"。
7、也可以在mysql的配置文件my.ini中的[mysqld]中增加 default-character-set=UTF8。
8、使用Servlet过滤器进行编码的过滤。
9、尽量减少用Get方式提交中文。