php mysq亂碼的解決方法:1、透過「Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin」語句修改資料庫編碼;2、透過「header("content-type:text/html; charset =utf-8")”語句設定頁面字元集。
本教學操作環境:Windows7系統、PHP8.1版、Dell G3電腦。
php mysql亂碼怎麼辦?
#php mysql亂碼解決方案
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 数据库之后加多这一句
推薦學習:《PHP視訊教學》
以上是php mysql亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!