当我们给我们创建的表无论是用Mysql语句插入,还是通过mysql的管理工具手动录入,都无法解决中文变?的问题。
无论是在数据库中修改表还是库的相应字符格式都无法解决的时候。此时我们在安装新版的mysql中,也没有my.ini文件。这时我们就陷入一个僵局-----崩溃了,想砸了电脑。别慌!我花费了2个小时百度,尝试了很多办法,终于解决了。
1.现进入C:\Program Files\MySQL\MySQL Server 5.7\bin中,然后进入cmd控制台。
或者先进入cmd控制台,然后在进入C:\Program Files\MySQL\MySQL Server 5.7\bin文件目录。
2.登录数据库
mysql>mysql -hlocalhost -uroot -proot
此时后续有两种方式。
数据库中字符出现乱码无非列的字符编码出现问题。
方式一:通过查询表各列编码,看是否列的编码出现的问题。
3.切换数据库 use 【数据库名称】
4.查询表的字符编码 show create table 【表名】
此时会发现Name 的编码未Latinl.这是我们中文变成?的原由之一。我们现在改变这个。
alter table `表名`change `列名` `列名`varchar(32) character set utf8 not null;
5.设置完成后,再去尝试操作数据库,会发现问题解决啦。
方式二.
3.输入show variables like '%char%'语句,查询数据库的字符编码情况。
此时我们会发现character_set_server、database的编码并非未utf8 ,这是我们的原因所在,此时我们进行修改吧。
分别输入下面2句语句。
set @@character_set_server='utf8';
set @@character_set_database='utf8';
4.设置完成后,我们再次输入show variables like '%char%'语句,查询数据库的字符编码情况。你会发现数据库编码设置成我们想要的了。
5.关闭cmd,重启mysql服务,会发现问题解决啦。
总结:面对编码问题,其实无需太担心,耐心的去解决,收获还是非常大的。也希望各位好友能在IT路上继续加油。