新聞中心
本文操作環(huán)境:Windows7系統(tǒng),php7.1版,Dell G3電腦。

如何解決php用戶信息亂碼問題?
php+mysql的utf-8中文亂碼問題的解決方法
建議數(shù)據(jù)庫用utf8編碼
問題匯總:
1.MySQL數(shù)據(jù)庫默認的編碼是utf8,如果這種編碼與你的PHP網(wǎng)頁不一致,可能就會造成mysql亂碼.
2.MYSQL中創(chuàng)建表時會讓你選擇一種編碼,如果這種編碼與你的網(wǎng)頁編碼不一致,也可能造成MYSQL亂碼.
3.MYSQL創(chuàng)建表時添加字段是可以選擇編碼的,如果這種編碼與你的網(wǎng)頁編碼不一致,也可能造成MYSQL亂碼.
4.用戶提交頁面的編碼與顯示數(shù)據(jù)的頁面編碼不一致,就肯定會造成php頁面亂碼.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
6.PHP頁面字符集不正確.
7.PHP連接MYSQL數(shù)據(jù)庫語句指定的編碼不正確.
使用mysql+php產(chǎn)生亂碼的原因都了解得很清楚了,那么解決就不困難了.
針對不同問題的解決方法:
1.mysql數(shù)據(jù)庫默認的編碼是utf8,如果這種編碼與你的PHP網(wǎng)頁不一致,可能就會造成MYSQL亂碼.
修改數(shù)據(jù)庫編碼,如果是數(shù)據(jù)庫編碼不正確,可以在phpmyadmin 執(zhí)行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是將test數(shù)據(jù)庫的編碼設為utf8.
2.MYSQL中創(chuàng)建表時會讓你選擇一種編碼,如果這種編碼與你的網(wǎng)頁編碼不一致,也可能造成MYSQL亂碼.
修改表的編碼:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是將一個表category的編碼改為utf8.
3.MYSQL創(chuàng)建表時添加字段是可以選擇編碼的,如果這種編碼與你的網(wǎng)頁編碼不一致,也可能造成MYSQL亂碼.
修改字段的編碼:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是將test表中 dd的字段編碼改為utf8.
4.用戶提交頁面的編碼與顯示數(shù)據(jù)的頁面編碼不一致,就肯定會造成PHP頁面亂碼.
如果是這種情況容易解決,只需檢查下頁面,修改源文件的charset即可.
5.如用戶輸入資料的頁面是big5碼, 顯示用戶輸入的頁面卻是gb2312,這種100%會造成PHP頁面亂碼.
這種情況也是修改頁面charset即可.
6.PHP頁面字符集不正確.
為了避免PHP頁面亂碼的發(fā)生,PHP頁面開始第一句
header("content-type:text/html; charset=utf-8");
//強行指定頁面的編碼,以避免亂碼
7.PHP連接MYSQL數(shù)據(jù)庫語句指定的編碼不正確.
在連接數(shù)據(jù)庫的語句中.
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 數(shù)據(jù)庫之后加多這一句 當前文章:如何解決php用戶信息亂碼問題
網(wǎng)頁鏈接:http://www.5511xx.com/article/dhssedd.html


咨詢
建站咨詢
