程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> mysql+php中文顯示亂碼的解決

mysql+php中文顯示亂碼的解決

編輯:更多數據庫知識
mysql+php中文顯示亂碼的解決 建議數據庫用utf8編碼 問題匯總: 1.mysql數據庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼. 2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼. 3.MYSQL創建表時添加字段是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼. 4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼. 5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼. 6.PHP頁面字符集不正確. 7.PHP連接MYSQL數據庫語句指定的編碼不正確. 使用mysql+php產生亂碼的原因都了解得很清楚了,那麼解決就不困難了. 針對不同問題的解決方法: 1.mysql數據庫默認的編碼是utf8,如果這種編碼與你的PHP網頁不一致,可能就會造成MYSQL亂碼. 修改數據庫編碼,如果是數據庫編碼不正確,可以在phpmyadmin 執行如下命令: ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是將test數據庫的編碼設為utf8. 2.MYSQL中創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼. 修改表的編碼: ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是將一個表category的編碼改為utf8. 3.MYSQL創建表時添加字段是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成MYSQL亂碼. 修改字段的編碼: ALTER TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 以上命令就是將test表中 dd的字段編碼改為utf8. 4.用戶提交頁面的編碼與顯示數據的頁面編碼不一致,就肯定會造成PHP頁面亂碼. 如果是這種情況容易解決,只需檢查下頁面,修改源文件的charset即可. 5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼. 這種情況也是修改頁面charset即可. 6.PHP頁面字符集不正確. 為了避免PHP頁面亂碼的發生,PHP頁面開始第一句 header("content-type:text/html; charset=utf-8"); //強行指定頁面的編碼,以避免亂碼 7.PHP連接MYSQL數據庫語句指定的編碼不正確. 在連接數據庫的語句中. mysql_connect('localhost','user','password'); mysql_select_db('my_db'); mysql_query("set names utf8;"); //select 數據庫之後加多這一句 *
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved