使用臨時域名進行網頁訪問,login.html頁面始終得不到回傳資料,在本地服務器上沒有問題,修改login.php代碼,發現當用戶名密碼錯誤時可以回傳正確的值,說明是可以從資料庫中進行查詢的。但是當從把從資料庫中取得的值輸出時卻會報錯,后反復試驗,發現是每當輸出從資料庫中得到的中文字串時就會報錯。然后通過向資料庫中插入資料時驗證到,js頁面向php頁面傳輸的資料,再從php頁面回傳是正常的,說明js和php頁面之間不存在問題,但是在資料庫中看到的卻是亂碼。說明在資料庫的編碼、php編碼之間存在問題。
4.修改資料庫編碼、php編碼、js編碼、html編碼全部為GBK,依然沒有解決問題,還是從資料庫中可以拿到資料,但是中文字串在php中報錯,新增的資料在php頁面是正確的(echo驗證過),但是后臺仍是亂碼。
5向php頁面中加入.如下代碼:
mysqli_query("set character set 'gbk'");//讀庫
mysqli_query("set names 'gbk'");//寫庫
仍然報錯!!!,修改為
mysql_query("set character set 'gbk'");//讀庫
mysql_query("set names 'gbk'");//寫庫
還是錯!!!!!!!
想到ajax中設定了發送資料的格式為utf8,雖然覺得前后臺之間傳輸不存在問題,還是嘗試進行了修改,xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=gbk');
沒卵用,依舊錯!!!!!!!
實在是木有辦法啊!!
uj5u.com熱心網友回復:
多年血淋淋的教訓就是全部向utf8靠攏而千萬別向GB靠攏,正如你所知,僅ajax用utf8就會給前后端GB轉碼帶來很大麻煩。1、先將資料庫、資料表全部設成utf8;
2、php后臺檔案本身轉存成utf8無BOM文本,并在開頭寫一句@header("Content-type:text/html;charset=utf-8");
有這兩點后端就應該OK了,一個mysql_query也別用。
如果你前端HTML非要以GB編碼顯示,那么唯一的轉碼只在這里
uj5u.com熱心網友回復:
UTF8也有報錯的,用了一款SugarCRM的系統,也是Mysql+ PHP的,字符UTF8,插資料時很大概率會報錯轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/113818.html
標籤:MySQL
下一篇:Mysql的一條Update遷移
