91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決ajax傳到后臺php中文亂碼問題

發布時間:2021-12-27 09:35:32 來源:億速云 閱讀:181 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關怎么解決ajax傳到后臺php中文亂碼問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

ajax傳到后臺php中文亂碼的解決辦法:1、設置“iconv('utf-8','gb2312',$_POST['Data']);”;2、通過arrayRecursive以及JSON方法解決編碼問題即可。

怎么解決ajax傳到后臺php中文亂碼問題

本文操作環境:Windows7系統,PHP7.1版,Dell G3電腦。

PHP中AJAX應用中文亂碼解決方法

web應用開發中經常出現中文亂碼情況!

今天主要整理下思路:

出現亂碼的大多數情況是我們進行AJAX時所遇到的!因為直接數據庫讀取是不會有任何編碼上的問題的~

1.從前臺JS提交數據到后臺的情況下

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

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

如果是GB2312的話~問題就來了!GBK被UTF-8轉換后發送到后臺,這時后臺直接接收到的已經亂碼了!

(解決方法:后臺語言為PHP的情況下,iconv('utf-8','gb2312',$_POST['Data']);)

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

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

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

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

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

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

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

在PHP后臺進行json轉換操作時,問題就來了!

json轉換時會發現從數據庫讀取出來的中文又出現NULL或其它不正常的情況,這是因為JSON只轉義encoding編碼!咱也甭管他轉義什么編碼!

反正JSON轉中文出現亂碼的情況~~

解決辦法如下:

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);

經過這些處理后你會發現后臺PHP從數據庫讀出來的中文字符成功的轉成了json格式并且中文顯示一切正常!

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

好了~~就是這些思路~網上方法有很多!看得有點亂~主要是記住思路!

然后就看用什么函數用什么方法解決相關編碼問題就可以了!

比較煩那種JS前臺AJAX需要轉碼!后臺再解碼!有的還需要轉兩次!

目前我寫的這些都是在PHP后臺語言代碼的情況下有效的.

前臺即使是GBK也不用作任何轉碼操作,全部只在后臺PHP代碼里面作相關轉換就可以了!!


關于“怎么解決ajax傳到后臺php中文亂碼問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁水县| 教育| 松阳县| 海伦市| 庆云县| 大石桥市| 昌都县| 班玛县| 延川县| 新郑市| 孟州市| 都安| 商丘市| 平泉县| 邵阳县| 靖宇县| 托克逊县| 吴江市| 明光市| 泽州县| 保山市| 穆棱市| 漾濞| 凤阳县| 宁城县| 曲周县| 锡林浩特市| 景洪市| 荥阳市| 尚义县| 奉节县| 日喀则市| 偃师市| 外汇| 中牟县| 南宫市| 五台县| 龙川县| 米泉市| 克什克腾旗| 观塘区|