千家信息网

如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况"的有关知识,在实际案例的操作过程中,不少人都会遇到这样
千家信息网最后更新 2026年11月02日如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况

本篇内容介绍了"如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

mysql链接建立之后,通过如下方式设置编码:

复制代码 代码如下:

mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->link);


然而建立出来的表结构描述竟然是乱码:

复制代码 代码如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '��������',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '���������ռ�',
`value` text COMMENT '����ֵ',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '����ֵ����',
`description` text COMMENT '���ý���',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='��վ���ñ�'


经过排查,发现竟然是character_set_client=binary惹的祸:

复制代码 代码如下:

$targetDb->query("SET NAMES '{$charset}'");

复制代码 代码如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '配置名称',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空间',
`value` text COMMENT '缓存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值类型',
`description` text COMMENT '配置介绍',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='网站配置表'


但是,如果我设置的字符集是UTF8的,表结构也是utf8,那么即使是使用的上面的character_set_client=binary,表结构的描述正常:

复制代码 代码如下:

mysql> show create table nw_admin_config\G
*************************** 1. row ***************************
Table: nw_admin_config
Create Table: CREATE TABLE `nw_admin_config` (
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '配置名称',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空间',
`value` text COMMENT '缓存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值类型',
`description` text COMMENT '配置介绍',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='网站配置表'


而奇怪的事,乱码情况只有表结构中的描述中才存在,对于插入的数据中文却还是正常的~

网上查了character_set_client=binary都说是"大部分为了解决乱码问题而设置",却不知,这个对表结构描述竟然反而乱码了。到底这个是什么作用呢?表结构的时候又为什么不一样呢?

"如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

代码 配置 乱码 情况 结构 字符 字符集 网站 内容 名称 更多 知识 空间 类型 缓存 实用 学有所成 接下来 作用 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 互联网下的科技发展 互联网金融与金融科技 汇久创客互联网科技 苏州大垚互联网科技 深圳期待互联网科技 湖南洣水互联网科技有限公司扣款 北京大学互联网科技怎么样 互联网科技寓意 互联网科技教育视频 上海宁丞科技互联网 中国航天科技大学国际工业互联网 湖南一路畅行互联网科技 青海科技产业互联网发展 科技赋能视角下互联网保险发展 元气玛特互联网科技公司是外包吗 城市宝互联网科技有限公司 国产互联网科技公司 青岛易易互联网科技 科技发展第三阶段互联网时代 什么是科技互联网 互联网科技的发展 科技创新互联网企业 壕鑫互联网络科技 互联网科技公司做什么 互联网科技大会案例 甘肃拓世互联网科技有限公司 宁波青枫互联网科技有限公司 东莞新华互联网科技学校 广州燕处互联网科技有限公司
0