色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql保存微信用戶信息時亂碼

洪振霞1年前6瀏覽0評論

近日,我們在使用MySQL數(shù)據(jù)庫保存微信用戶信息時,發(fā)現(xiàn)了一個非常棘手的問題——中文信息總是亂碼!在深入分析了這個問題的原因后,我們發(fā)現(xiàn)了一些解決方案,下面就和大家分享一下。

一般來說,我們在使用MySQL保存中文信息時,需要保證以下兩個條件:

1.數(shù)據(jù)庫的編碼和表的編碼都為UTF-8 2.連接MySQL時必須指定編碼為UTF-8
//連接數(shù)據(jù)庫的代碼示例
$con = mysqli_connect("localhost","my_user","my_password","my_db");  
mysqli_query($con,"set names 'utf8'");

但是,即使我們已經(jīng)滿足了以上兩個條件,保存中文信息的時候依然會出現(xiàn)亂碼的問題。

造成這個問題出現(xiàn)的原因,是微信傳過來的數(shù)據(jù)使用了GBK編碼,而MySQL保存時卻是以UTF-8的方式進(jìn)行。解決這個問題的關(guān)鍵是將GBK編碼的數(shù)據(jù)轉(zhuǎn)換為UTF-8編碼的數(shù)據(jù),然后再進(jìn)行保存。

//將GBK編碼的數(shù)據(jù)轉(zhuǎn)換為UTF-8編碼的代碼示例
$str = iconv("GBK", "UTF-8", $str);

通過將傳過來的中文數(shù)據(jù)轉(zhuǎn)換為UTF-8編碼后,再進(jìn)行保存,就可以解決中文亂碼的問題了。

最后,我們提醒大家:在使用MySQL保存中文信息時,一定要注意編碼的問題,特別是對于外部傳入的數(shù)據(jù),要進(jìn)行編碼格式的轉(zhuǎn)換。