您的位置:首页 > 数据库 > MySQL

Mysql数据中文乱码问题处理

2018-06-14 13:35 393 查看

MYSQL数据库中的字符集设置

在创建数据库和数据表的时候,可以选择对应字符编码方式,如utf8,gbk,gb2312等等。也可以在后面修改表的Collation配置。

所以数据表的Collation配置必须能够表示表中的中文字符,这是最基本的要求。然后字符必须是使用该Collation兼容的字符集来编码的,这样才能正常显示和被mysql处理。

字符集配置变量

可以通过如下命令查看字符集变量值:

show variables like 'char%';

character_set_client	utf8
character_set_connection	utf8
character_set_database	utf8
character_set_filesystem	binary
character_set_results	utf8
character_set_server	utf8
character_set_system	utf8
character_sets_dir	D:\HwsApacheMaster\mysql\share\charsets\

SHOW VARIABLES LIKE 'collation%';

# Variable_name, Value
collation_connection, utf8_general_ci
collation_database, utf8_general_ci
collation_server, utf8_general_ci

这些变量的含义和作用,参见官方文档解释: Connection Character Sets and Collations

中文乱码的基本原因:

character_set_client:客户端的字符集

character_set_results:结果字符集

character_set_connection:连接字符集

这三个系统参数的作用:

信息输入路径: client--connection--server--database (数据传送方向从左到右,server负责解释和转换)

信息输出路径: database--server--connection--results (数据传送方向从左到右,server负责转换和输出)

故这几个系统参数的值须相同,不然以不同的编码方式传送数据,若编码方式不兼容,则容易造成乱码的问题。

客户端通过如下类似命令可以修改上述三个参数的字符集值:

set names gb2312;

但是该命令无法修改character_set_server变量的值,因此需要注意是否匹配一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: