程序员社区

从MySQL数据库获取中文显示乱码解决方案

> Hello,欢迎来到程序员社区。 今天聊一聊 从MySQL数据库获取中文显示乱码解决方案,希望对大家有所帮助。

Java面试手册PDF下载:[点击下载最全Java面试手册](http://117.78.51.75/219-2)

 显示乱码有许多原因:
 我遇到的主要是MySQL数据库中 因为【编码不统一】造成的。

 Latin1是ISO-8859-1的别名,有些环境下写作Latin-1,最终要改为 utf-编程电子书汇总8
在数据库中输入查询命令:

修改成功后的查看界面:
从MySQL数据库获取中文显示乱码解决方案插图


执行命令登录MySQL : mysql -u root -p
回车
输入密码
输入:show variables like ‘%char%’ ; #分号别忘了

编程电子书汇总如果您之前使用 set character_set_XXX=utf8 没效果,请对配置文件进行配置!!


 我的默认 my.ini 在 C:ProgramDataMySQLMySQL Server 5.7下
在里面增加或修改:
#符号是配置文件的注释,在其后面的都不会执行!

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci #MySQL 5之后的版本要加这一行

 因为我的MySQL安装位置在C:Program FilesMyJava面试手册SQLMySQL Server 5.7,所以复制一份my.ini到 安装目录下。
从MySQL数据库获取中文显示乱码解决方案插图1
#拓展知识
[mysql] #客户端的工具,执行sql命令
[mysqld] #服务器端,用来启动MySQL数据库服务

重启MySQL57 服务。
再次运行命令工具:发现已经生效,真舒服!

注意点来了!
进入Navicat新建查询发现还是没变:
显示如下:
从MySQL数据库获取中文显示乱码解决方案插图2
是因为上面修改成功的对以后新建的编程电子书汇总数据库才生效!

之前建的数据库的还是原样!

参考链接:https://www.cnblogs.com/jasonzeng/p/8341445.html.
参考链接:https://bbs.csdn.net/topics/390881914

下面的大家不用看,我写给自己看的,只是自己留作参考 /

MySQL设置的变量的也有范围
1、session范围

在数据库中查询命令中输入修改字符编码:
character_set_client=utf8
character_set_connection=utf8
set characterJava面试手册_set_server=utf8
character_set_results=utf8
set character_set_database=utf8

属性的意思:
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;

只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
输入show variables like ‘%char%’
发现设置生效,可以看到字符集已经修改成都是utf8了。
!!!!!! 但是 !!!!!!!!这里有一个问题,当你重新打开一个命令窗口或重新打开数据库的时候,编码又会变为原来的latin1。服务器提取的时候中文还是乱码!!
【该方法不适合一劳永逸!】

2.2、global范围

mysql设置变量的范围默认是session范围。如果设置多个会话的字符集那么需要设置global范围: Set [global|session] variables …
如:
set global character_set_database=utf8
set global character_set_server=utf8
此处省略几行,参照session设置
输入:
show variables like ‘%char%’;
按理说应该变成utf8。但是没出现效果。
而且数据库重启的时候,你们发现设置global范围的值又变成latin1了。

> 时间不一定能证明很多东西,但是一定能看透很多东西。坚信自己的选择,不动摇,使劲跑,明天会更好。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 从MySQL数据库获取中文显示乱码解决方案

一个分享Java & Python知识的社区