今天遇到了,用了struts2之后,从jsp页面向数据库插入数据、修改数据时,插入的中文和修改的中文全是乱码的问题。
可以确定mysql的编码和jsp的编码都统一为utf-8,所以问题出在哪里一时间找不出来。
数据库编码
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------------+
一开始试了以下方法,结果没用
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>
然后是这种,也没用
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
既然不关数据库和jsp的事情,那应该就是tomcat的问题了,于是我去查了怎么修改tomcat的配置文件
更改tomcat服务器编码
修改Tomcat—->conf—–>server.xml文件,在修改端口的标签后面加一行代码,如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
自此终于解决了乱码问题。