欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何解決php應(yīng)用ajax返回亂碼的問題

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何解決php應(yīng)用ajax返回亂碼的問題,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元未央做網(wǎng)站,已為上家服務(wù),為未央各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

php應(yīng)用ajax返回亂碼的解決辦法:1、把接收到的數(shù)據(jù)再重新轉(zhuǎn)回為GBK,代碼為【iconv(utf-8,'gb2312'$_POST[Data])】;2、用JSON進行傳遞,代碼為【$json_string=JSON($data)】。

php應(yīng)用ajax返回亂碼的解決辦法:

1、從前臺JS提交數(shù)據(jù)到后臺的情況下

AJAX數(shù)據(jù)時,不管是直接用底層xmlHttprequest還是用jQuery的ajax進行數(shù)據(jù)傳遞時!ajax都會使用utf-8進行編碼后發(fā)送!

如果我們的頁面是UTF-8那沒有問題!傳遞過去的中文數(shù)據(jù)不會亂碼!

如果是GB2312的話~問題就來了!GBK被UTF-8轉(zhuǎn)換后發(fā)送到后臺,這時后臺直接接收到的已經(jīng)亂碼了!

解決方法:后臺語言為PHP的情況下

iconv('utf-8','gb2312',$_POST['Data']);

原理很簡單:后臺直接接收是utf-8,而頁面都是GBK,那只要把接收到的數(shù)據(jù)再重新轉(zhuǎn)回為GBK就可以了!

這時再做數(shù)據(jù)庫操作就可以了!存入數(shù)據(jù)庫里的必定是正常的中文字符了!

2、后臺頁面讀取到數(shù)據(jù)庫里數(shù)據(jù)中含有中文字符,此時再回傳到JS前臺的情況下

PHP頁面從數(shù)據(jù)庫里讀取到了正常的中文字符想通過AJAX再回傳回去~

如果傳遞回去只是把數(shù)據(jù)不作任何處理直接以字符串的形式傳回去!這是沒有問題的!中文在前臺頁面上顯示一切正常!

但后臺數(shù)據(jù)我們一般是需要包裝一下!不然前臺接收到的數(shù)據(jù)會很難處理!

如果是PHP的話!那么我們現(xiàn)在一般用JSON進行傳遞!這樣傳遞到前臺JS的數(shù)據(jù)就會非常容易解開并操作!

在PHP后臺進行json轉(zhuǎn)換操作時,問題就來了!

json轉(zhuǎn)換時會發(fā)現(xiàn)從數(shù)據(jù)庫讀取出來的中文又出現(xiàn)NULL或其它不正常的情況,這是因為JSON只轉(zhuǎn)義encoding編碼!咱也甭管他轉(zhuǎn)義什么編碼!

反正JSON轉(zhuǎn)中文出現(xiàn)亂碼的情況~~

解決辦法如下:

function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
 {
     static $recursive_counter = 0;
     if (++$recursive_counter > 1000) {
         die('possible deep recursion attack');
     }
     foreach ($array as $key => $value) {
         if (is_array($value)) {
             arrayRecursive($array[$key], $function, $apply_to_keys_also);
         } else {
             $array[$key] = $function($value);
         }
   
         if ($apply_to_keys_also && is_string($key)) {
             $new_key = $function($key);
             if ($new_key != $key) {
                 $array[$new_key] = $array[$key];
                 unset($array[$key]);
             }
         }
     }
     $recursive_counter--;
 }
 function JSON($array) {
     arrayRecursive($array, 'urlencode', true);
     $json = json_encode($array);
     return urldecode($json);
 }
$json_string=JSON($data);
//$obj = json_decode($json_string);
print_r($json_string);

經(jīng)過這些處理后你會發(fā)現(xiàn)后臺PHP從數(shù)據(jù)庫讀出來的中文字符成功的轉(zhuǎn)成了json格式并且中文顯示一切正常!

當然此時前臺接收到的數(shù)據(jù)就是JSON格式的了并且中文字符也是正常!

上述就是小編為大家分享的如何解決php應(yīng)用ajax返回亂碼的問題了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章題目:如何解決php應(yīng)用ajax返回亂碼的問題
文章源于:http://www.chinadenli.net/article4/peejoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)商城網(wǎng)站網(wǎng)站導(dǎo)航手機網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)