MySQL數(shù)據(jù)庫(kù) 字符編碼問(wèn)題解決MySQL數(shù)據(jù)庫(kù)字符集的默認(rèn)配置: 在mysql的配置文件中把默認(rèn)的字符集改成utf8,這樣創(chuàng)建數(shù)據(jù)庫(kù)和表的時(shí)候,默認(rèn)的字符集就是utf8。 當(dāng)一個(gè) PHP 程序與 MySQL 建立連接后,這個(gè)程序發(fā)送給 MySQL 的數(shù)據(jù)采用的是什么字符集?mysql如何檢測(cè)并判斷使用何種字符集?要注意以下幾個(gè)變量: character_set_server:這是設(shè)置服務(wù)器使用的字符集 這只有兩種可能,客戶(hù)端以 gb2312 格式發(fā)送數(shù)據(jù),或者以 utf-8 格式發(fā)送數(shù)據(jù)。 如果以 gb2312 格式發(fā)送: SET character_set_client=’gb2312′
都是可以的,都能夠保證數(shù)據(jù)在編碼轉(zhuǎn)換中不出現(xiàn)丟失,也就是保證存儲(chǔ)入數(shù)據(jù)庫(kù)的是正確的內(nèi)容。 怎么保證取出的是正確的內(nèi)容呢?考慮到絕大部分客戶(hù)端 (包括 WP),發(fā)送數(shù)據(jù)的編碼也就是它所希望收到數(shù)據(jù)的編碼,所以: 可 以保證取出給瀏覽器顯示的格式就是 gb2312。不過(guò)這樣的缺點(diǎn)是不論是插入、更新、刪除還是查詢(xún)操作,只要是操縱數(shù)據(jù)庫(kù),都要先執(zhí)行SET NAMES “gb2312″,這樣才能保證插入和顯示的正確性。如果插入操作前沒(méi)有執(zhí)行這條語(yǔ)句,僅在查詢(xún)時(shí)執(zhí)行該語(yǔ)句,則仍然無(wú)法保證顯示的正確性。 如果是第二種情況,客戶(hù)端以 utf-8 格式發(fā)送 (WP 的默認(rèn)情況),可以采用下述配置: 這個(gè)配置就等價(jià)于 SET NAMES ‘utf8′。 |
|
來(lái)自: ekylin > 《互聯(lián)網(wǎng)絡(luò)》