亂碼一直是困擾PHP初學(xué)者的一個非常大的問題,現(xiàn)在總結(jié)下造成亂碼的原因及解決方法:
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,南木林網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:南木林等地區(qū)。南木林做網(wǎng)站價格咨詢:18982081108
一、HTML頁面編碼:meta http-equiv=content-type content=text/html; charset=utf-8 這里的編碼要和數(shù)據(jù)庫編碼,及連接數(shù)據(jù)庫編碼;
二、文件在存儲編碼:比如文件inde.php,改變其存儲編碼為所需編碼。只需用EditPlus等文本編輯軟件 文件另存為,在編碼中選擇正確的編碼(這點很多人都會忽略);
三、數(shù)據(jù)庫編碼:比如用的是phpmyadmin 選擇數(shù)據(jù)庫后,選擇操作選項。下面有一個整理,這里面也要設(shè)置成統(tǒng)一的編碼;
四、表編碼:操作和第三點類似。這里就不重復(fù)了;
五、字段編碼:在建表的建字段的時候,有個整理。如果內(nèi)容有漢字,就一定要改成統(tǒng)一的編碼;
六、連接數(shù)據(jù)庫時mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (剛遇到的)本地測試成功后的網(wǎng)站,傳到網(wǎng)上去,會有亂碼。可能會是在本地導(dǎo)出數(shù)據(jù)時沒有選擇正確的編碼,所以才會在導(dǎo)入到web上后有亂碼問題。
php數(shù)據(jù)庫中文亂碼的解決辦法:1、創(chuàng)建數(shù)據(jù)庫時,規(guī)定字符類型為uft8;2、創(chuàng)建表時,規(guī)定字符類型為utf8;3、在PHP的MySQL連接函數(shù)中,添加語句“mysql_query("set names 'utf8'")。
用phpmyadmin添加mysql數(shù)據(jù)庫,然后用php操作數(shù)據(jù)庫出現(xià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'");
其實,只要注意文件編寫的時候編碼、數(shù)據(jù)庫的編碼一般就不會有這個問題的,但是,比如你用DW(dwcs4貌似沒有這個現(xiàn)象)打開文件,它會以默認的編碼讀取,一旦你保存了,那就完了,用EditPlus打開之后,右下角有編碼提示,如果發(fā)現(xiàn)不對,另存為,覆蓋一下,就可以了