亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

mysql中的亂碼總結(jié)之mysql5中四個(gè)設(shè)置字符集的

系統(tǒng) 2474 0

http://www.corange.cn/archives/2008/10/2050.html

好多次更換mysql主機(jī)商時(shí),都要造成mysql數(shù)據(jù)的亂碼,因?yàn)榫W(wǎng)站開發(fā)歷史經(jīng)歷了多個(gè)mysql版本,而且是在我剛剛學(xué)php時(shí)一點(diǎn)點(diǎn)做的,因?yàn)榈讓拥臇|西很混亂,當(dāng)時(shí)就沒有也不知道如何處理字符串,今天決定好好的研究下它。mysql5提供了以下幾個(gè)設(shè)置字符集的系統(tǒng)變量:character_set_client 客戶端字符集character_set_connection 客戶端與服務(wù)器端連接采用的字符集character_set_results SELECT查詢返回?cái)?shù)據(jù)的字符集character_set_database 數(shù)據(jù)庫(kù)采用的字符集亂碼問(wèn)題一般是由于以上幾個(gè)變量設(shè)置錯(cuò)誤照成的,所以只要理解這幾個(gè)變量,就可以與告別亂碼了。使用上述變量,要理解這個(gè)核心思想: character_set_client,character_set_connection這兩個(gè)變量保證要與 character_set_database編碼的一致,而 character_set_results則保證與SELECT返回的結(jié)果與程序的編碼一致。我們可以在程序中使用 set names來(lái)同時(shí)設(shè)置character_set_client, character_set_connection, character_set_results這三個(gè)系統(tǒng)變量。
例如 set names 'utf8' 等同于 :

set @@character_set_client = 'utf8'

set @@character_set_connection = 'utf8'

set @@character_set_results = 'utf8'一般情況下,當(dāng)數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)表的字符集為utf8,我們?cè)僭诔绦蚶镌O(shè)置set names 'utf8'命令,這樣就能保證無(wú)亂碼了,但是,這里還要注意character_set_results變量的值,character_set_results的字符值是用來(lái)顯示返回給用戶的編碼的。
例 如,你的數(shù)據(jù)庫(kù)(character_set_database)用的是utf8的字符集,那么你就要保證 character_set_client,character_set_connection也是utf8的字符集。而你的程序也許采用的并不是 utf8,比如你的程序用的是gbk,那么你若把character_set_results也設(shè)置為utf8的話就會(huì)出現(xiàn)亂碼問(wèn)題。此時(shí)你應(yīng)該把 character_set_results設(shè)置為gbk。這樣就能保證數(shù)據(jù)庫(kù)返回的結(jié)果與你的程序的編碼一致。

以下摘自網(wǎng)絡(luò)的一程序段:<?//假設(shè)我們的程序采用的是utf8的字符集$program_char = 'utf8';//先檢查mysql的版本號(hào),如果版本號(hào)大于4我們才可以設(shè)置這些系統(tǒng)變量(mysql4還沒有這些系統(tǒng)變量)$version = current($db->fetch_one('SELECT VERSION()'));if (substr($version, 0, 1) > 4){//取出當(dāng)前數(shù)據(jù)庫(kù)的字符集$sql = 'SELECT @@character_set_database';$char = current($db->fetch_one($sql));//將客戶端字符集(character_set_client)和連接字符集(character_set_connection)設(shè)置為與數(shù)據(jù)庫(kù)字符集(character_set_database)一致$db->query('SET @@character_set_client = "' . $char . '"');$db->query('SET @@character_set_connection = "' . $char . '"');//將SELECT查詢返回?cái)?shù)據(jù)的字符集設(shè)置為與當(dāng)前程序的字符集一致$db->query('SET @@character_set_results = "' . $program_char . '"');}?>1、要保證數(shù)據(jù)庫(kù)中存的數(shù)據(jù)與數(shù)據(jù)庫(kù)編碼一致,即數(shù)據(jù)編碼與character_set_database一致;2、要保證通訊的字符集與數(shù)據(jù)庫(kù)的字符集一致,即character_set_client, character_set_connection與character_set_database一致;3、要保證SELECT的返回與程序的編碼一致,即character_set_results與程序編碼一致;4、要保證程序編碼與瀏覽器編碼一致,即程序編碼與<meta http-equiv="Content-Type" content="text/html; charset=?"/>一致。

mysql中的亂碼總結(jié)之mysql5中四個(gè)設(shè)置字符集的系統(tǒng)變量


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产日韩欧美精品在线 | 成人久久18免费网址 | 91视频香蕉 | 免费日韩精品 | 欧美 亚洲 中文字幕 | 国产深夜视频 | 综合久久久久久久 | 2022国产男人亚洲欧美天堂 | 久久久久久网址 | 曰本一区二区 | 色爽女| 国产在线视频h | 私人影院在线免费观看 | 波多野结衣中文无毒不卡 | 欧美夜夜骑| 俺来也欧美亚洲a∨在线 | 99久久99这里只有免费的精品 | 四虎影视永久免费观看网址 | 亚洲日本综合 | 九九福利影院 | 国产一级毛片大陆 | 欧美一区二区三区免费观看视频 | 日本高清视频www夜色资源 | 国产精品久久二区三区色裕 | 免费中文字幕不卡视频 | 五月婷婷激情综合网 | 3级毛片| 麻豆国内精品欧美在线 | 久久综合九色 | 久久ri精品高清一区二区三区 | 99九九精品免费视频观看 | 精品亚洲一区二区三区 | 国产成人一区二区三区精品久久 | 97在线视频免费播放 | 色综合五月激情综合色一区 | 天天舔天天爽 | 久久青青草原精品国产麻豆 | 一区二区三区中文 | 国产原创巨作精品 | 爱操在线视频 | 国产精品久久免费观看 |