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

mysql中的亂碼總結之mysql5中四個設置字符集的

系統 2131 0

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

好多次更換mysql主機商時,都要造成mysql數據的亂碼,因為網站開發歷史經歷了多個mysql版本,而且是在我剛剛學php時一點點做的,因為底層的東西很混亂,當時就沒有也不知道如何處理字符串,今天決定好好的研究下它。mysql5提供了以下幾個設置字符集的系統變量:character_set_client 客戶端字符集character_set_connection 客戶端與服務器端連接采用的字符集character_set_results SELECT查詢返回數據的字符集character_set_database 數據庫采用的字符集亂碼問題一般是由于以上幾個變量設置錯誤照成的,所以只要理解這幾個變量,就可以與告別亂碼了。使用上述變量,要理解這個核心思想: character_set_client,character_set_connection這兩個變量保證要與 character_set_database編碼的一致,而 character_set_results則保證與SELECT返回的結果與程序的編碼一致。我們可以在程序中使用 set names來同時設置character_set_client, character_set_connection, character_set_results這三個系統變量。
例如 set names 'utf8' 等同于 :

set @@character_set_client = 'utf8'

set @@character_set_connection = 'utf8'

set @@character_set_results = 'utf8'一般情況下,當數據庫與數據庫表的字符集為utf8,我們再在程序里設置set names 'utf8'命令,這樣就能保證無亂碼了,但是,這里還要注意character_set_results變量的值,character_set_results的字符值是用來顯示返回給用戶的編碼的。
例 如,你的數據庫(character_set_database)用的是utf8的字符集,那么你就要保證 character_set_client,character_set_connection也是utf8的字符集。而你的程序也許采用的并不是 utf8,比如你的程序用的是gbk,那么你若把character_set_results也設置為utf8的話就會出現亂碼問題。此時你應該把 character_set_results設置為gbk。這樣就能保證數據庫返回的結果與你的程序的編碼一致。

以下摘自網絡的一程序段:<?//假設我們的程序采用的是utf8的字符集$program_char = 'utf8';//先檢查mysql的版本號,如果版本號大于4我們才可以設置這些系統變量(mysql4還沒有這些系統變量)$version = current($db->fetch_one('SELECT VERSION()'));if (substr($version, 0, 1) > 4){//取出當前數據庫的字符集$sql = 'SELECT @@character_set_database';$char = current($db->fetch_one($sql));//將客戶端字符集(character_set_client)和連接字符集(character_set_connection)設置為與數據庫字符集(character_set_database)一致$db->query('SET @@character_set_client = "' . $char . '"');$db->query('SET @@character_set_connection = "' . $char . '"');//將SELECT查詢返回數據的字符集設置為與當前程序的字符集一致$db->query('SET @@character_set_results = "' . $program_char . '"');}?>1、要保證數據庫中存的數據與數據庫編碼一致,即數據編碼與character_set_database一致;2、要保證通訊的字符集與數據庫的字符集一致,即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中的亂碼總結之mysql5中四個設置字符集的系統變量


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一级α片毛片免费观看 | 狠狠做狠狠做综合日日 | 亚洲一级视频在线观看 | 婷婷色中文 | 高清中文字幕视频在线播 | 日日噜噜夜夜狠狠久久丁香 | 男人天堂视频在线 | 国产高清在线视频一区二区三区 | 久久久四虎成人永久免费网站 | 日本一级aaaa特黄毛片 | 97视频在线免费观看 | 国产97在线 | 亚洲 | 精品久久久久久中文字幕一区 | 91妖精视频 | 免费视频爱爱 | 中文字幕亚洲欧美日韩高清 | 国产精品日韩欧美一区二区 | 欧美精品1区 | 国内精品日本久久久久影院 | 狠狠操图片 | 亚洲色四在线视频观看 | 午夜影院一区二区三区 | 视频福利一区 | 最新日韩在线观看 | 日日撸夜夜撸网站 | 亚洲国产99在线精品一区二区 | 一本大道香蕉大vr在线吗视频 | 成人国产精品视频频 | 国产v欧美v日本v精品 | 最新亚洲情黄在线网站 | 亚洲一二三区在线观看 | 精品久久视频 | 五月天婷婷免费观看视频在线 | 国产成人禁片免费观看 | 日韩一区二区三区在线视频 | 色色在线 | 91视频精选| 九九九色视频在线观看免费 | 99久久免费费视频在线观看 | 在线日韩国产 | 成人亚洲在线 |