千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"如何解决关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况"的有关知识,在实际案例的操作过程中,不少人都会遇到这样
千家信息网最后更新 2025年02月01日如何解决关于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安全错误 数据库的锁怎样保障安全 互联网科技与医药股份 数据库都需要考哪些证书 数据库开发应聘简历 数据库动态维护登录账号和密码 地铁信号软件开发 鲲鹏服务器浙江移动 软件开发设计公司有哪些东西 泰安 网络安全基地 软件开发人员职级晋升答辩 浙江应用软件开发哪家好 江西一站式软件开发费用 软件开发项目的解决方案 魔兽世界服务器人数查询 天谕清族捏脸数据库 2021年网络安全知识答题截图 3天天津网络安全培训 r720服务器远程管理口 V模型是软件开发模型吗 iis服务器怎么加强安全 什么是人工智能和软件开发 杭州麦海拾贝网络技术有限公司 2010数据库表之间的关系 闵行区推广软件开发信息推荐 信源豆豆登录显示服务器禁止注册 江西一站式软件开发费用 中华网络安全法27条 碳银互联网科技公司 金蝶数据库版本 采购中文期刊检索数据库服务要求 网络安全应用检测专业测评人员
0