AI智能
改变未来

mysql插入表中的中文显示为乱码或问号的解决方法{已解决}

1.我的计算机配置: windows系统(linux没试过) mysql 5.6
    mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,我是通过修改my.ini配置文件。(配置文件在安装的根目录下如下图)

原来的为my-default.ini (复制里面的内容改为my.ini,也就是重新命名)

2.然后在my.ini如下修改

[mydqld]和[client]段加入

default-character-set=utf8 (有的版本不支持default-character-set=utf8,用character_set_server=utf8来取代 default-character-set=utf8即可)

如果没有[client]就手工加入[client]段

【1】在[client]节点下添加 (这个如果是另一种character_set_server=utf8 这样写我的会报错1067【mysql服务无法启动】,大家可以试试)  (这个是客户端的编码配置)default-character-set=utf8【2】在[mysqld]节点下添加 (这个是服务器端编码的配置)(注:collation是排序方式)character-set-server=utf8collation-server=utf8_general_ci

修改后如下图所示:

3.然后重启mysql即可

1)计算机—->右键—>管理—->服务和应用程序—>服务—>找到mysql即可

2)我比较喜欢用命令行

以管理员身份运行cmd.exe,进行如下操作。

关闭服务 net stop mysql

开启服务 net start mysql

END: 然后就可以来查看是否变了编码格式。还是在cmd中

1)输入 mysql -u root -p 进入mysql数据库

2)键入密码:*****(自己的密码,没有的话直接回车键,嗯其他情况如忘了root密码百度去orz。。)

3)show variables like ‘char%’; 显示编码格式

下图一为未修改my.ini配置文件的编码文件latin1(即ISO-8859-1),图二为已经修改过的。

图一(未修改)

图二(已修改编码)

可以看出都已经更正为utf8了,这样新建立的数据库缺省就是UTF8编码了

彩蛋:

然后你以为到这就完了么,并没有。。

接下来你会发现报这个错如下所示。

上述错误是什么引起的呢,还是因为编码不正确啊!因为使用了已经创建好的数据库和表但没有更改为utf-8;

通过以下命令查看表的编码为Latin1:

show create table tablename(数据库名.表名);

修改方法:

ALTER DATABASE

数据库

DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

ALTER TABLE

数据表

DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci (注:此句把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:)

数据库编码的修改和查询

总结:也就是要更改数据库的默认字符集为utf8,更改表的字符集为utf8,更改列的字符集为utf8,然后重新启动MYSQL服务;

最后大功告成!

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » mysql插入表中的中文显示为乱码或问号的解决方法{已解决}