mysql 字符集设置了 character_set_client=binary 在
gbk 情况下会出现表描述是乱码的情况
今天在处理 bug 的时候,又发现一个奇怪的问题,在设置 mysql 的编码为 gbk 的情况下,
发现建立出来的表,凡是表结构无论是字段还是表结构描述是中文的时候,建立出来的
表结构描述是乱码,经过排查原来是 character_set_client=binary 惹的祸
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` (