MySQL中文乱码

中文乱码这个问题已经是老生常谈,这里只做记录,以便之后的开发中快速解决。


一,解决思路

1.从网页读中文保存到str

手动:str = new String(str.getBytes("ISO-8859-1"),"UTF-8");

过滤器:

  1. 在web.xml中 添加一个过滤器
  2. 在过滤器类中添加以上代码

如果是SSM框架 直接在web.xml中注册已经写好的过滤器指定编码即可

 

2.保存中文到数据库

不管是用jdbc还是mybatis或者durid都差不多,指定url的时候在后面加上useUnicode=true&characterEncoding=UTF-8

<property name="url" value="jdbc:mysql://localhost:3306/mall?useUnicode=true&amp;characterEncoding=UTF-8" />

 

3.除此之外 还要注意

  1. 网页的编码 比如html jsp的编码
  2. 数据库的编码 值得注意的是MySQl中不仅数据库有编码 表和字段也有编码

二,MySQL 编码配置

进入MySQL 输入如下命令查看编码,我们最终希望的下面这种全是utf8的结果

做法就是去修改MySQL的配置文件, my.ini 位置在安装目录下,修改文件需要管理员权限。

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
default-storage-engine=INNODB

检查这些标签下的编码,不是utf8的改成utf8,没有的自己加上。 

  1. 这些标签下都有很多注释,要仔细找
  2. 修改完毕后重启mysql才能生效, net stop mysql + net start mysql 或者 net restart mysql
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值