mysql数据库接收不了中文乱码_数据库中文乱码及分析

数据库出现乱码主要是因为服务器端与客户端,或者是数据库本身编码不同造成的。

主要的情况如下:

一.mysql数据库的问题

测试:

使用mysql -u root -p登录数据库,输入

我这个是改完之后的,保证所有的都是utf8.

d85d62e06089f1241d30c2544857defd.png

方法是:

Mac:

找到安装路径下的my.cnf文件,到/usr/local/mysql/support-files目录下将mac上的mysql配置文件模板my-default.cnf拷贝到/etc下,并将文件名改成my.cnf,之后用文本编辑器打开,添加一下内容。后面两个要放到文件最后,要不会启动不了mysql。之后保存,测试一下是否可以使用

[mysqld]

character-set-server=utf8  #注意这行不要写成 default-character-set=utf8

[client]

default-character-set=utf8

[mysql]

no-auto-rehash

windows:

找到my.ini文件位于C:\ProgramData\MySQL\MySQL Server 5.1目录下,如果找不到就在命令行MySQL 5.6 Command Line Client的快捷方式配置中(也就是右击找到属性),查看目标一栏,这个就是my.ini的地址

二.navicat的问题(其他数据库工具没用过,可能也有这个问题)

步骤与mysql相同,这是修改完之后的,如果不一样就是这个的问题了(折腾了一下午,就是这个问题)

6a331b825a76cc437e819660ce48609b.png

解决:

在上面的步骤(也包括第一个)无误的基础上,重启mysql

Mac:

sudo /usr/local/mysql/support-files/mysql.server restart

windows:

net stop mysql;停止mysql

net start mysql;启动mysql

在navicat中创建新的连接,设定编码集为自动或者是utf8都可以,之后就可以了

————————————————————————————————————————————————————————————————————————————————————

之后的就是页面方向出现的问题了,如果确认多次页面接收没有问题,基本可以不用看

————————————————————————————————————————————————————————————————————————————————————

三.jsp—— >servlet的问题(也有可能是另一个接收数据的jsp页面)

测试

在接收端将接收到的数据使用system.out.print()输出

结果和操作:

1.如果产生乱码:在接收页面之前使用,下面两行代码

request.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");之后就可以照常使用set函数对变量进行赋值了。

c6887cfbefafbf05e64467a62bf114b2.png

2.如果没有产生乱码:该层次乱码可能性排除

二.Dao层的问题(也就是在java中写的数据库语句的部分)

测试

在dao层中将接收到的数据使用system.out.print()输出,也就是这个地方

526286728803c44f38df4837c63535a9.png

结果和操作:

出现的可能性不大,我没有出现过(如果出现欢迎在评论区补充)

三.Connection的问题(没有遇见过,不过网上有的给出过关于这个的答案)

结果和操作:

在connection的url之后添加

?useUnicode=true&characterEncoding=utf-8

当然如果你连接数据库的方式和我一样,有useSSL=false的话,你还要在后面再加一个&,如图

603153604d83b3ecd0c0f40920264e10.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值