關(guān)于mysql字符集設(shè)置了character_set_client=binary 在gbk情況下會(huì)出現(xiàn)表描述是亂碼的情況
mysql_query("SET character_set_connection=" . $GLOBALS['charset'] . ",character_set_results=" . $GLOBALS['charset'] . ",character_set_client=binary", $this->link);
然而建立出來(lái)的表結(jié)構(gòu)描述竟然是亂碼:
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='��վ���ñ�'
經(jīng)過(guò)排查,發(fā)現(xiàn)竟然是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 '配置名稱(chēng)',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空間',
`value` text COMMENT '緩存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值類(lèi)型',
`description` text COMMENT '配置介紹',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='網(wǎng)站配置表'
但是,如果我設(shè)置的字符集是UTF8的,表結(jié)構(gòu)也是utf8,那么即使是使用的上面的character_set_client=binary,表結(jié)構(gòu)的描述正常:
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 '配置名稱(chēng)',
`namespace` varchar(15) NOT NULL DEFAULT 'global' COMMENT '配置命名空間',
`value` text COMMENT '緩存值',
`vtype` enum('string','array','object') NOT NULL DEFAULT 'string' COMMENT '配置值類(lèi)型',
`description` text COMMENT '配置介紹',
PRIMARY KEY (`namespace`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='網(wǎng)站配置表'
而奇怪的事,亂碼情況只有表結(jié)構(gòu)中的描述中才存在,對(duì)于插入的數(shù)據(jù)中文卻還是正常的~
網(wǎng)上查了character_set_client=binary都說(shuō)是“大部分為了解決亂碼問(wèn)題而設(shè)置”,卻不知,這個(gè)對(duì)表結(jié)構(gòu)描述竟然反而亂碼了。到底這個(gè)是什么作用呢?表結(jié)構(gòu)的時(shí)候又為什么不一樣呢?
相關(guān)文章
PHP實(shí)現(xiàn)動(dòng)態(tài)壓縮js與css文件的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)壓縮js與css文件的方法,涉及php文件讀寫(xiě)及字符串替換等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05微信公眾號(hào)開(kāi)發(fā)之微信公共平臺(tái)消息回復(fù)類(lèi)實(shí)例
這篇文章主要介紹了微信公眾號(hào)開(kāi)發(fā)之微信公共平臺(tái)消息回復(fù)類(lèi),給出了其完整實(shí)例,并附有注釋說(shuō)明便于理解與運(yùn)用,對(duì)于微信公眾號(hào)的開(kāi)發(fā)來(lái)說(shuō)非常具有參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11PHP file_get_contents設(shè)置超時(shí)處理方法
今天說(shuō)的這篇是講超時(shí)的,確實(shí)在跨服務(wù)器提交的時(shí)候,不可避免的會(huì)遇到超時(shí)的情況,這個(gè)時(shí)候怎么辦?set_time_limit是沒(méi)有用的,只有用context中的timeout時(shí)間來(lái)控制2013-09-09php中file_get_content 和curl以及fopen 效率分析
關(guān)于file_get_content 和curl以及fopen 的效率問(wèn)題,小編比較傾向于使用curl來(lái)訪(fǎng)問(wèn)遠(yuǎn)程url。Php有curl模塊擴(kuò)展,功能很是強(qiáng)大。沒(méi)事可以研究一下。2014-09-09PHP Session_Regenerate_ID函數(shù)雙釋放內(nèi)存破壞漏洞
PHP Session_Regenerate_ID函數(shù)存在雙釋放內(nèi)容破壞問(wèn)題,遠(yuǎn)程攻擊者可利用此漏洞對(duì)應(yīng)用程序進(jìn)行拒絕服務(wù)攻擊,可能導(dǎo)致任意指令執(zhí)行。2011-01-01PHP中通過(guò)ADODB庫(kù)實(shí)現(xiàn)調(diào)用Access數(shù)據(jù)庫(kù)之修正版本
PHP中通過(guò)ADODB庫(kù)實(shí)現(xiàn)調(diào)用Access數(shù)據(jù)庫(kù)之修正版本...2006-12-12分享下php5類(lèi)中三種數(shù)據(jù)類(lèi)型的區(qū)別
這篇文章主要介紹了php5類(lèi)中三種數(shù)據(jù)類(lèi)型的區(qū)別,需要的朋友可以參考下2015-01-01PHP單元測(cè)試?yán)?PHPUNIT深入用法(二)
在上一篇PHP單元測(cè)試?yán)鳎篜HPUNIT初探文章中,我們對(duì)phpunit有了一個(gè)初步的認(rèn)識(shí),在本文中將繼續(xù)深入講解下phpunit中的一些用法。2011-03-03源碼分析系列之json_encode()如何轉(zhuǎn)化一個(gè)對(duì)象
這篇文章主要介紹了源碼分析系列之json_encode()如何轉(zhuǎn)化一個(gè)對(duì)象,對(duì)json_encode()感興趣的同學(xué),可以參考下2021-04-04