关于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中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
开源SNS系统-ThinkSNS
May 18 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
php ci框架验证码实例分析
Jun 26 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
php缓冲输出实例分析
Jan 05 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
PHP7.0版本备注
Jul 23 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 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
咖啡的化学
2021/03/03 咖啡文化
供参考的 php 学习提高路线分享
2011/10/23 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php生成无限栏目树
2017/03/16 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
JS原型与原型链的深入理解
2017/02/15 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
微信小程序倒计时功能实例代码
2018/07/17 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
毕业生多媒体设计求职信
2013/10/12 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
应聘护士求职信
2014/07/21 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
科学育儿宣传标语
2014/10/08 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
python实现双链表
2022/05/25 Python