今天遇到新的问题:从html页面获取表单数据,在Servlet中处理并插入Mysql数据库中,结果中文出现乱码,起初的具体操作如下:
1、在Java Web工程中新建html表单页面,用于接收用户输入的数据;
2、在工程src目录下新建包,新建Servlet用于处理表单数据;
3、在web.xml 文件中添加<servlet></servlet> 和<servlet-mapping></servlet-mapping> 标签,用于制定Servlet的虚拟路径;
4、在form表单的设置action属性为相应的Servlet虚拟路径;
以上步骤中的具体代码这里省略,假定程序运行正常,但数据库中的中文数据是呈乱码状态的
那么以上影响到中文乱码的都有那些地方呢?
a、Tomcat 安装路径下的conf文件夹下的,的server.xml文件中有一段代码 需要添加 URIEncoding="UTF-8" ;
b、Mysql数据库的编码集设置(一般设置为gb2312);
c、还有就是在Servlet中 设置请求(request)和响应(response)的编码方式:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
实际遇到的问题是,上述所有地方都做了合理的设置后,插入到数据库中的中文仍为乱码,
于是我通过一番探索,最终找到该问题的解决方案:
在每个html表单页面中也设置一下编码方式,具体操作就是在<head></head>标签中使用<meta >标签
即: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
(本文为笔者自己的学习总结,如有错误,欢迎评点)