php數(shù)據(jù)庫操作之?dāng)?shù)據(jù)顯示亂碼終極解決辦法
php連接mysql亂碼是開發(fā)過程當(dāng)中,這是開發(fā)中新手經(jīng)常遇到的問題。 根據(jù)實(shí)際大家遇到的問題,將亂碼的問題,總結(jié)成了9個(gè)要點(diǎn)來徹底解決連接后亂碼的問題。
解決亂碼問題的核心思想,就是:一定要多個(gè)不同的文件系統(tǒng)中一定要統(tǒng)一編碼。
這9個(gè)要點(diǎn)分別是:
1.html編碼與MySQL編碼一致
2.PHP編碼與MySQL編碼一致
3.若有header頭發(fā)送字符集,請與數(shù)據(jù)庫一樣
4.<meta http-equiv=“Content-Type”content=“text/html; charset=utf-8” />要和頁面的文字編碼一致
5.數(shù)據(jù)庫建庫的字符集要統(tǒng)一
6.表的字符集要統(tǒng)一
7.列的字符集要統(tǒng)一(表設(shè)了,列就默認(rèn)寫表的)
8.連接,校驗(yàn)的字符集要統(tǒng)一
9.結(jié)果集的字符集要統(tǒng)一
一,文件編碼
html和PHP文件的編碼,示例中:拿notepad++來演示。將PHP和html都要設(shè)為這種字符集。
一定要設(shè)置為utf-8無BOM格式。
二、header頭編碼
如果php中有header頭,一定要是utf-8的
header('content-type:text/html;charset=utf-8');
三、網(wǎng)頁頭文件編碼
如果html文件編碼是utf-8的也要設(shè)置為一置
<meta http-equiv=“Content-Type”content=“text/html; charset=utf-8” />
四、創(chuàng)建數(shù)據(jù)庫的編碼
五、表和列創(chuàng)建的時(shí)候表為utf-8
六、連接,結(jié)果、校驗(yàn)字符集設(shè)置
通過mysqli_set_charset('utf8')來MySQL連接、結(jié)果和校驗(yàn)的字符集設(shè)置。
注:數(shù)據(jù)庫的字符集聲明和文件中的略有不同。utf8為mysql數(shù)據(jù)庫的,utf-8為文件中使用的。