解决mySql中文乱码以及Eclipse插入中文出现乱码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ye1714505125/article/details/51159767

cmd --->命令行

mySql查询数据库出现中文乱码:

1、登录数据库,mysql -u root -p  ,输入密码,登入

2、查询mysql编码 : show variables like "%char%"; 

3、正确编码集一般如下,当然,client和connection可以选择gbk,那么eclipse编码集也应为gbk,保持一致;

从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、results、server 、system。其中与服务器端相关:database、server、system(如果不想乱码,那么其应该是utf-8);与客户端相关:connection、client、results(通过set names  gbk,或者 set names utf8 更改) 。
 
问题:
        许多同学查询编码集是如下图片:额  额  暂时已经修改掉了 ,原因 : 许多mysql数据库,默认server编码为  latin1 ,此时应做如下修改:
 
 
      1、(5.5以前系统)在【client】下面加入 default-character-set=utf8
    注意: 如果修改后不能启动报错试试把default-character-set=utf8改为character_set_server=utf8
      2(5.5以后系统)在mysql安装目录下找到my.ini文件,用记事本打开,找到  [client] 和 serverd  将    default-character-set 默认编码方式改为
\
                  default-character-set=utf8    character-set-server=utf8   ,记住serverd 一定要改... (这里有些同学,可能刚开始启动写sql语句,都不会出现乱码,那是因为查找百度解决方案将其编码方式修改成了utf8,但未修改my.ini,后面又出现乱码,症结就在此 ,因为每一次启动,都是利用my.ini的启动方式启动,所以务必修改),在这里,为以防万一可以做如下设置;
set character_set_database=utf8;
set character_set_server=utf8;
set character_set_client=gbk;
set character_set_connection=gbk;
      3、新版本找不到my.ini文件 ,这里相对各版本各异,也找了许多方法,也许添加上面语句会奏效,但下了几个版本都无效,最后决定先不用高版本...;
     以上任何一种方式,都记得重启server ,否则不会生效,重启后再查看mysql编码, 我在百度里查了重启server的许多快捷语言,发现行不通,于是就关机重启了...
重启后会发现  character_set_server   为 utf8 ;

select * from table时显示第一张图还是乱码

把上面的编码方式改变! set character_set_results=gbk; 就可以正常显示!


  这是 再执行 insert 语句,会发现不会乱码了,如果再次乱码,set names gbk或  utf8 试试,出现乱码就是编码格式不对....这是两天没找到答案的最终得出结果就是编码格式的不对;
 
 还有一些同学,明明都改对了,也查询不到,那可能是因为数据库和表格创建的时候,没有使用utf8 ,此时重新创建一个数据库和表格,再试试;
 
eclipse插入语句,中文乱码,而mysql 命令行以及客户端工具不是乱码:
      eclipse默认编码格式都是gbk ,百度里有人写的是 保持一致,但更多的是 将编码格式改为utf8,有四个地方需要修改  (最好全改)
    1、window--preferences--General--workspace 左下角选择 Other  utf-8;
    2、project-properties  选择UTF-8
    3、右击自己新建的项目,properties选择  utf-8
    4、右击自己建立的class,properties,选择 utf-8 ,
再次插入数据,看看结果,基本都不会出问题;
 
 
 

猜你喜欢

转载自blog.csdn.net/ye1714505125/article/details/51159767