MySQL對中文的支援程度還是很有限的,常出現亂碼問題。
問題一、
用PHPmyAdmin操作MySQL資料庫中文顯示正常,但用PHP網頁顯示MySQL數據時所有中文都變成了?號,有多少個中文就有多少個?號。
原因:
沒有在PHP網頁中用代碼告訴MySQL該以什麼字符集輸出中文。
解決方法:
- 網頁文件head設置編碼
- PHP頁面在保存的時候使用utf-8編碼保存,可以用記事本或notepade++轉換文件
- 在MYSQL中新建資料庫的時候資料庫選擇UTF-8
編碼與字符集設定為utf-8_unicode_ci(Unicode (多語言),不區分大小寫),
資料庫裡面表table的整理設置為utf-8_general_ci
資料表裡面的每個字段的整理都設置為utf-8_general_ci - 在PHP連接資料庫的時候,也就是mysql_connect()之後加入
//設置數據的字符集utf-8
mysql_query("set names 'utf8' ");
mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");
p.s
注意是utf8,不是utf-8 。
強烈推薦網頁編碼、MySQL數據表字符集、PHPmyAdmin都統一使用UTF-8。
以上四點即可實現全站utf-8編碼,而且在資料庫中也不會有中文亂碼。
問題二、
用PHPmyAdmin輸入數據時發生錯誤,不讓輸入或出現亂碼解決方法:這是設置問題。請安裝最新版PHPmyAdmin或Appserv,打開PHPmyAdmin,MySQL字符集: UTF-8 Unicode (utf8); MySQL連接校對應該為utf8_unicode_ci;創建新的資料庫時整理一欄請也選成utf8_unicode_ci。網頁字符集也最好選用utf-8。utf-8是國際標準編碼,是趨勢。
如果是因為編碼不統一,可以重建數據表,當然是用國際標準的UTF8。
沒有留言:
張貼留言