mysql 中文乱码解决办法总结
mysql 中文乱码解决办法总结:1.其中client是客服端使用的字符集,相当于网页中的字符集设置.
2.connection是连接数据库的字符集设置类型,如果没有指明连接数据库使用的字符集类型,就按照服务器端默认的字符集设置.
3.database是数据库服务器中某个库使用的字符集设定,如果建库是没有指明,将使用服务器安装是指定的字符集设置.
4.results是数据库给客服端返回是使用的字符集设定,如果没有指明,使用服务器默认的字符集.
5.server是服务器安装时指定的默认字符集设定
6.system是数据库系统使用的字符集设定
system一般默认是utf-8字符集,server是最高的字符集设定,database没有单独设定就按照server的字符集设定,其他都是按照server的设定设置字符集.
数据库内的每个表和字段也都有字符集的概念,一般都是根据上一级结构决定自身的字符集,比如表就是根据database库的设定决定自己的字符集,字段根据表来决定自己的字符集.
1.在编译mysql时我们可以用这个指令:
./configure --default-character-set=utf8
这样在编译的时候,就会把mysql的server项编译成utf8的编码,这样这个mysql下建立的所有数据库都将使用utf8编码存储,所有有关的方面都是utf8编码.
2.默认情况下我们在mysql命令行使用status指令察看状态,还可以用SHOW
VARIABLES LIKE 'character_set_%';
3.有人说修改[my.ini]中default-character-set=gbk这项就可以解决问题,但其实不然.而且在建数据库的时候我们可以通过这样的指令实现数据库的字符集设置:
create database '数据库名' default character set utf8 collate utf8_general_ci;
这样此数据库内的所有表和字段都将为utf8字符集编码,所以在配置文件中修改的方法意义不大.
我们可以完全无视数据库默认的字符集是什么,只关心在建立数据库的时候加入字符集选择.
(1)使用如下指令创建数据库:
create database '数据库名' default character set utf8 collate utf8_general_ci;
4.修改数据库的字符集:
use '数据库名'
alter database '数据库名' character set utf-8;
5.创建数据库指定数据库的字符集:
create database '数据库名' character set utf-8;
6.修改字符集的方法:
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;