关于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中如何调用webservice的实例参考
Apr 25 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
destoon常用的安全设置概述
Jun 21 PHP
浅谈json_encode用法
Mar 05 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
微信公众平台DEMO(PHP)
May 04 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
mac pecl 安装php7.1扩展教程
Oct 17 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中文汉字验证码
2007/04/08 PHP
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python万年历实现代码 含运行结果
2017/05/20 Python
python实现windows下文件备份脚本
2018/05/27 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
小学毕业感言50字
2014/02/16 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
和解协议书
2014/04/16 职场文书
求职意向书
2014/07/29 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
工程服务质量承诺书
2015/04/29 职场文书
php引用传递
2021/04/01 PHP
java实现对Hadoop的操作
2021/07/01 Java/Android
浅谈MySQL函数
2021/10/05 MySQL