乱码问题的处理问题是web中首先需要解决的问题,我们首先要明确,乱码都会出现在什么地方。
有以下三个地方,分别是:
(1)建立数据库制定编码
(2)html页面
(3)动态工程
解决的方法要从五个方面,分别是:
(1)数据库指定编码GBK
(2)动态工程的编码
(3)Servlet的request和response指定GBK
(4)html指定
(5)服务器的server.xml中指定
下面我们来详细的看一下这五个地方的具体指定操作。
(1)数据库指定编码GBK。是在数据库安装的过程中选择编码,淡然是在自定义的模式下,在标准安装是没有编码的指定,只有一个默认的编码,具体会是什么,只能自己去验证了。在连接数据库时,我们要在数据库的连接路径中进行设定。
具体的语句如下:
String url="jdbc:mysql://localhost:3306/stuteach?useUnicode=truecharacterEncoding=UTF-8";
(2)动态工程的编码。
(3)Servlet的request和response指定GBK。在建立Servlet后,我们在执行的方法中对request和response进行设定,加上如下代码:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
(4)html指定。在创建html是,在<head></head>标签内添加编码指定,具体语句是:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
当然在JSP中还要加上一下语句:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
(5)服务器的server.xml中指定。我们以tomcat为例,我们在安装了tomcat之后,会在我们的工作站出现一个新的工程,名字是Server,打开工程之后,我们找到server.xml,双击打开,我们找到这句话:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
然后将语句的后面加上另一个属性URIEncoding="UTF-8",修改后如下:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>