1. 对于web项目页面和后台数据传递的乱码:
在web.xml中配置如下过滤器,此过滤器只对POST请求有效,对GET请求无效。
<span style="white-space:pre"> </span><!-- 中文过滤器 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
对于GET类型可用如下办法解决:
在tomcat的server.xml中加上URIEncoding="UTF-8”解决(最好是通过对eclipse的Servers中的server.xml来修改,若直接在tomcat安转目录中修改URIEncoding="UTF-8"可能会有重启后丢失的情况)
2. 若还有乱码,则查看mysql的编码集
命令行下: show variables like 'character%’;
其中character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上后四个(除client外)采用的编码方式一样,就99%无乱码。
若不一样要修改(我的是mac系统)
3. 用navigate去添加查看数据时出现乱码
不过此时我的navicat显示的数据依然都是问号乱码,网上说的都是将navicat连接属性-高级-使用mysql字符集前的钩去掉,但是我mac上的navicat并没有这个选项。
mysql的编码集统一了,navigate的编码集也统一了,navicat连接属性-编码设置的为utf8,为什么在navicat上查看终端添加的数据是乱码,但在navicat插入的数据,在项目中和终端中却也是乱码?
弄了半天将navicat连接属性-编码设置为自动,突然发现navicat中查看终端添加的数据终于不乱码了,自己添加的数据,在项目和终端中也不乱码了。