关于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英文字符串截取代码分享
Jul 15 PHP
PHP中的日期加减方法示例
Aug 21 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
Lumen timezone 时区设置方法(慢了8个小时)
Jan 20 PHP
php 中phar包的使用教程详解
Oct 26 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
利用php获取服务器时间的实现代码
2013/06/07 PHP
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
Python多线程爬虫简单示例
2016/03/04 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
mac系统安装Python3初体验
2018/01/02 Python
python树莓派红外反射传感器
2019/01/21 Python
Python 监测文件是否更新的方法
2019/06/10 Python
实例详解Python模块decimal
2019/06/26 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python time库基本使用方法分析
2019/12/13 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
基层工作经历证明
2014/01/13 职场文书
一年级学生评语
2014/04/23 职场文书
新学期开学标语
2014/06/30 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
举起手来观后感
2015/06/09 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python