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


Posted in PHP onJanuary 06, 2013

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都说是“大部分为了解决乱码问题而设置”,却不知,这个对表结构描述竟然反而乱码了。到底这个是什么作用呢?表结构的时候又为什么不一样呢?

PHP 相关文章推荐
PHP概述.
Oct 09 PHP
php5编程中的异常处理详细方法介绍
Jul 29 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
XHProf报告字段含义的解析
May 17 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
php实现JWT验证的实例教程
Nov 26 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
Dec 29 #PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 #PHP
php学习笔记之面向对象编程
Dec 29 #PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 #PHP
PHP中计算字符串相似度的函数代码
Dec 29 #PHP
PHP flock 文件锁详细介绍
Dec 29 #PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 #PHP
You might like
php中异常处理方法小结
2015/01/09 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解VUE 数组更新
2017/12/16 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
Python WEB应用部署的实现方法
2019/01/02 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
历史专业毕业生的自我鉴定
2013/11/15 职场文书
运动会入场词200字
2014/02/15 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
毕业证委托书范文
2014/09/26 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
公务员考察材料范文
2014/12/23 职场文书
体育教师个人总结
2015/02/09 职场文书
电力培训学习心得体会
2016/01/11 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
Java使用HttpClient实现文件下载
2022/08/14 Java/Android