數(shù)據(jù)顯示亂碼的解決辦法
數(shù)據(jù)顯示亂碼終極解決辦法
php連接mysql亂碼是開發(fā)過程當中,這是開發(fā)中新手經(jīng)常遇到的問題。 根據(jù)實際大家遇到的問題,將亂碼的問題,總結(jié)成了9個要點來徹底解決連接后亂碼的問題。
解決亂碼問題的核心思想,就是:一定要多個不同的文件系統(tǒng)中一定要統(tǒng)一編碼。
這9個要點分別是:
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è)了,列就默認寫表的)
8.??? 連接,校驗的字符集要統(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)建的時候表為utf-8
六、連接,結(jié)果、校驗字符集設(shè)置
通過mysqli_set_charset('utf8')來MySQL連接、結(jié)果和校驗的字符集設(shè)置。
注:數(shù)據(jù)庫的字符集聲明和文件中的略有不同。utf8為mysql數(shù)據(jù)庫的,utf-8為文件中使用的。
?