用phpmyadmin添加mysql數(shù)據(jù)庫,然后用php操作數(shù)據(jù)庫出現(xiàn)亂碼的解決辦法:
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了硚口免費建站歡迎大家使用!
1:確認phpmyadmin用的mysql字符集為utf-8
unicode(utf8);mysql連接校對為utf8_general_ci,language為中文-chinese
simplified
2:確認每個數(shù)據(jù)表的“整理為”utf8_general_ci;
3:在php連接mysql數(shù)據(jù)庫后加個語句來指定數(shù)據(jù)庫的字符集,
例如:$conn=mysql_connect("localhost","root","你的密碼");
//連接數(shù)據(jù)庫
mysql_query("set
name
'utf8'");
access的中文版默認是GBK格式的,是無法改變字符類型的,所以用php讀取的時候會亂碼。
解決方法是:使用iconv轉換
一、使用 iconv函數(shù)制作一個轉碼的自定義從GBK轉到UTF-8的函數(shù),如以下代碼:
function enc($c){return iconv('gbk','utf-8',$c);}
二、為了寫入數(shù)據(jù)庫的編碼是符合數(shù)據(jù)庫需要的,所以我們還要制作一個從UTF-8轉向GBK的函數(shù):
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了轉碼函數(shù),接下就是正常使用了。在從數(shù)據(jù)庫里面調(diào)數(shù)據(jù)顯示在頁面的時候使用enc()函數(shù),從頁面提交數(shù)據(jù)到數(shù)據(jù)庫時使用dec()函數(shù),這樣就可以很好的解決PHP使用UTF-8編碼,ACCESS使用系統(tǒng)默認編碼的問題了。
php數(shù)據(jù)庫中文亂碼的解決辦法:1、創(chuàng)建數(shù)據(jù)庫時,規(guī)定字符類型為uft8;2、創(chuàng)建表時,規(guī)定字符類型為utf8;3、在PHP的MySQL連接函數(shù)中,添加語句“mysql_query("set names 'utf8'")。
確保三碼合一就可以了..
第一個是數(shù)據(jù)庫的字符集
第二個就是存進去的時候字符集
第三個就是顯示的時候的字符集
這三個都有可能造成亂碼;
第一個 舉例是:如果你插入的時候用的是GB2312 ,但你表中的default charset是utf8 那么,就有可能亂碼了.
第二種情況就是你插入正確 但你查詢的時候以UTF8查詢出來,但你在HTML頁面里設置編碼如果非UTF8那么也有可能造成亂碼.
亂碼一直是困擾PHP初學者的一個非常大的問題,現(xiàn)在總結下造成亂碼的原因及解決方法:
一、HTML頁面編碼:meta http-equiv=content-type content=text/html; charset=utf-8 這里的編碼要和數(shù)據(jù)庫編碼,及連接數(shù)據(jù)庫編碼;
二、文件在存儲編碼:比如文件inde.php,改變其存儲編碼為所需編碼。只需用EditPlus等文本編輯軟件 文件另存為,在編碼中選擇正確的編碼(這點很多人都會忽略);
三、數(shù)據(jù)庫編碼:比如用的是phpmyadmin 選擇數(shù)據(jù)庫后,選擇操作選項。下面有一個整理,這里面也要設置成統(tǒng)一的編碼;
四、表編碼:操作和第三點類似。這里就不重復了;
五、字段編碼:在建表的建字段的時候,有個整理。如果內(nèi)容有漢字,就一定要改成統(tǒng)一的編碼;
六、連接數(shù)據(jù)庫時mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (剛遇到的)本地測試成功后的網(wǎng)站,傳到網(wǎng)上去,會有亂碼。可能會是在本地導出數(shù)據(jù)時沒有選擇正確的編碼,所以才會在導入到web上后有亂碼問題。