php+json+ajax解決中文亂碼筆記
阿新 • • 發佈:2019-02-10
使用json_encode把陣列或物件轉化為 json,當有中文時傳到前端時就會出現亂碼,解決方法如下:
function getData(){ // var con=document.getElementById("content"); //ajax=createAjax(); ajax=window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); ajax.onreadystatechange=function(){ if(ajax.readyState ==4){ if(ajax.status==200){ var data=ajax.responseText; //var json=decodeURIComponent(data); alert(eval(data)); }else{ alert("頁面請求失敗"); } } } ajax.open("get", "server.php", true); ajax.send(null); }
點選按鈕觸發函式:
<input type="button" onclick="getData()" value="點選" />
server.php:
$json = array ( 0 =>array ( 'id' => '32', 'name' => '我的名字1' ), 1 =>array ( 'id' => '33', 'name' => '我的名字2' ) ); echo myjson($json); function myjson($code) { $code = json_encode(urlencodeAry($code)); return urldecode($code); } function urlencodeAry($data) { if(is_array($data)) { foreach($data as $key=>$val) { $data[$key] = urlencodeAry($val); } return $data; } else { return urlencode($data); } }