background image

 

`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

都说是 大部分为了解决乱码问题而设置 ,却不知,

这个对表结构描述竟然反而乱码了。到底这个是什么作用呢?表结构的时候又为什么不一
样呢?