登录
首页 >  数据库 >  MySQL

MYSQL中文乱码问题的解决方案

来源:脚本之家

时间:2022-12-29 10:58:50 341浏览 收藏

在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《MYSQL中文乱码问题的解决方案》,聊聊乱码、mysql中文,希望可以帮助到正在努力赚钱的你。

一、乱码的原因:

1、 client客户端的编码不是utf8

2、server端的编码不是utf8

3、database数据库的编码不是utf8

4、数据库的表的编码不是utf8

5、表中的列字段编码不是utf8

主要的原因在于前三个偏多。

二、查看数据库的编码方式

mysql>show variables like ‘character%';

此截图是解决之后的,查看哪个不是和上面一样。

三、解决的办法有俩种:

1、对/etc/mysql/my.cnf 配置文件进行修改

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

2、由mysql -uroot -p命令进入mysql,输入以下设置

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

针对在客户端输入:数据库、表、列字段设置

alter database character set utf8;

alter table character set utf8;

alter table modify character set utf8;

注意:设置之后记得重启,输入命令:service mysql restart

四、本人在项目遇到乱码问题是以下方法解决的

出现问题的形式:项目的服务器向数据库插入数据时,表中的数据中文为乱码。

解决方法:对封装的数据库操作类中,建立连接数据库时,设置字符集utf8

 //建立连接后, 自动调用设置字符集语句,_dbConf._charset = utf8
 if(!_dbConf._charset.empty()) {	
 if (mysql_options(_pstMql, MYSQL_SET_CHARSET_NAME, _dbConf._charset.c_str())) {
 throw MysqlHelper_Exception(string("MysqlHelper::connect: mysql_options MYSQL_SET_CHARSET_NAME ") + _dbConf._charset + ":" + string(mysql_error(_pstMql)));
 }
 }

完美解决向数据库插入数据时中文乱码问题。

总结

以上就是《MYSQL中文乱码问题的解决方案》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表