关于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 Document 代码注释规范
Apr 13 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
php简单实现多语言切换的方法
May 09 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
php实现httpclient类示例
2014/04/08 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Python中__call__用法实例
2014/08/29 Python
python分析apache访问日志脚本分享
2015/02/26 Python
Python中用于计算对数的log()方法
2015/05/15 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
香港零食网购:上仓胃子
2020/06/08 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
电子商务自荐书范文
2014/01/04 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
2014国庆节标语口号
2014/09/19 职场文书
父亲节活动总结
2015/02/12 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫