如何解决mysql中文乱码问题
在我们项目开发中经常会用到mysql数据库,而在数据库保存中文字符经常会遇到中文乱码情况,接下来我来介绍一下解决mysql中文乱码问题。
1、查看mysql数据库使用编码格式的命令
命令1:show variables like ‘%char%’;
如下图所示,我们可以看到character_sert_database与character_set_server的字符集都是latin1.在mysql数据库中server,database,table的字符集默认都是latin1。
命令2:show variables like ‘collation%’;
如下图所示,我们可以看到collation_database与collation_server的字符集都是latin1_swedish_ci。
想要彻底解决中文乱码的问题,需要做到如下要求:
- 要保证数据库中存的数据与数据库编码一致,即数据编码与character_set_database一致;
- 要保证通讯的字符集与数据库的字符集一致,即character_set_client, character_set_connection与character_set_database一致;
- 要保证SELECT的返回与程序的编码一致,即character_set_results与程序编码一致;
- 要保证程序编码与浏览器、终端编码一致
2、修改mysql数据库字符编码
mysql设置的范围默认是session范围。如果设置多个会话的字符集那么需要设置global范围,我们需要把mysql设置为global范围才可彻底解决。
设置字符编码命令
set character_set_database=utf8;
set character_set_server=utf8;
执行结果,如下图所示:
查看字符编码命令
show variables like '%char%';
show variables like 'collation%';
执行结果,如下图所示:
3、设置数据global全局范围
vi /etc/my.cnf //修改mysql配置文件,请添加以下内容,并注意以下三个参数配置的位置。
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
如下图所示:
最后,重启mysql服务来验证它的字符集,发现已经变为utf8,而且在创建表的时候默认就是utf8了。
本文链接:
/archives/mysql-garbled
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
阳光•雨!
喜欢就支持一下吧