mysql+web项目(Springmvc+Spring+Mybatis)+ navicat 的中文乱码解决

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系统)

/usr/local/mysql/support-files/下拷贝my-medim.cnf 文件,粘贴到/etc目录下 
并且重命名为my.cnf ,然后修改 my.cnf。 
假如character_set_server不是utf8跟其他几个不一样,则需要在my.cnf中加入如下语句即可:
        character-set-server=utf8 
到这里,应该是从终端中插入数据,在项目中前后台传递数据,不会出现乱码了。
但是我用navigate去添加查看数据时却出现乱码。

3. 用navigate去添加查看数据时出现乱码

在navicat中若显示乱码,则要设置navicat的编码方式
1.在navicat中show variables like 'char%’;
    查看编码方式,若不一样则修改
 

2. 需要在 navicat 控制台运行 set names 'utf8'命令,再查看navigate的编码




    这样navicat重启后,更改的编码又回复默认

不过此时我的navicat显示的数据依然都是问号乱码,网上说的都是将navicat连接属性-高级-使用mysql字符集前的钩去掉,但是我mac上的navicat并没有这个选项。

mysql的编码集统一了,navigate的编码集也统一了,navicat连接属性-编码设置的为utf8,为什么在navicat上查看终端添加的数据是乱码,但在navicat插入的数据,在项目中和终端中却也是乱码?

弄了半天将navicat连接属性-编码设置为自动,突然发现navicat中查看终端添加的数据终于不乱码了,自己添加的数据,在项目和终端中也不乱码了。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值