关于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 相关文章推荐
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
Jun 23 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
PHP单链表的实现代码
Jul 05 PHP
php代码检查代理ip的有效性
Aug 19 PHP
TP5框架实现的数据库备份功能示例
Apr 05 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
[原创]图片分页查看
2006/08/28 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
详谈Python基础之内置函数和递归
2017/06/21 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
django用户登录和注销的实现方法
2018/07/16 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
python从子线程中获得返回值的方法
2019/01/30 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
好人好事事迹材料
2014/02/12 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
功夫熊猫观后感
2015/06/10 职场文书
天堂的孩子观后感
2015/06/11 职场文书
运动员入场前导词
2015/07/20 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技