mysql中文入库出现?号_MySQL插入中文数据出现?号,解决办法

运行环境:win10

mysql版本:Mysql5.6

做一个项目的时候,向数据库插入中文数据,一直都是?

问过度娘之后,她提供的以下办法:

1.在连接数据库的url后加:?useUnicode=true&characterEncoding=UTF-8

比如:

url = "jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=UTF-8";

2.检查servlet页面编码

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("utf-8");

3.检查JSP页面编码。

4.查看数据库属性

939406d7e21209752eef2b95158455a2.png

在这些全部都尝试过,还是?,最后找到了使用命令查看字符编码

1.点击windows图标,找到mysql,选择“Mysql5.6 command line Client”

打开之后输入数据库密码,

2.使用命令:use 数据库名(比如:use login)

3.输入命令:show variables like ‘%char%’; (查看数据库编码)

9bb014f887923c4d7a1b700e630915ea.png

果然有一项不对,虽然命令行修改很容易,只需要两行代码

set character_set_database=utf8;

set character_set_server=utf8;

但是,在重启数据库服务之后,这些设置又会恢复到默认latin1.

怎样让他们永久变为utf-8呢,搜了很久,终于找到了

解决方法:在mysql的配置文件my.ini写下character-set-server=utf8就好了

但是免安装版的my.ini在哪?

免安装mysql的目录下只有一个my-default.ini,而且打开也没有character-set-server

不急,先把它拷贝一份,并重命名为my.ini,这样该目录下就有了my.ini和my-default.ini两个ini文件

然后打开my.ini加上以下几行代码

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8

具体位置如下:

9ac206efe7ea79df2369a0b3183e38d3.png

这个时候再重新启动mysql的服务,就会发现编码就不会回复默认了

3f7a23f0edbb647f2cb7310a449d39f0.png

最后,附上数据库服务启动和关闭的地方:

1.win+R

2.输入:services.msc,回车

3.就能找到mysql服务啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值