Java插入中文到数据库中文变成问号解决

转载:Java插入中文到数据库中文变成问号解决

之所以会出现乱码,就是编码方式不一致导致的

我们应该首先确定

1. eclipse和mysql数据库中的编码方式是否一致

2. 在链接数据时,有没有在url里面加上characterEncoding=utf8,也就是下图这样

如果都解决了基本就没有问题了。


但是我"确定"了以上的方式都没问题,还是出现乱码

链接数据库的时候也加上了编码方式,但是还是会乱码,一定还是编码方式不一致导致的。eclipse的编码方式和数据库的编码方式都是一样的,但是原因到底是怎么回事,为什么一直不行,我就在数据库下面查询了各个编码方式如下:

发现确实数据的编码方式为utf8

把character_set_connection设为utf8编码发现还是不行

然后发现character_set_client和character_set_results编码方式都为latin1,接下来,我直接把两个的编码方式都设为gbk

再次运行java代码,然后在数据库中查看

发现插入数据的内容正常了,但是之前插入的数据内容的就出现乱码,毕竟上面插入内容的时候编码方式和现在不一样,所以问题到此就结束啦~~~~~~~~~~

注意:设置变量只对当前连接有效,当退出窗口后,再次登录mysql,还需要再次设置变量。

:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;
执行SET NAMES utf8的效果等同于同时设定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

指定默认编码(一劳永逸解决办法)
  在my.ini(MySQL安装目录里)中设置character-set-server=utf8即可,它可以修改三个变量:client、results、connection。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值