具有特殊字符的json_decode

json_decode with special characters

本文关键字:decode json 特殊字符      更新时间:2024-03-24

我将值从java脚本传递到php文件进行插入,如果我发送的名称没有特殊字符,则插入没有问题。

名称:萨蒂什
位置:班加罗尔

但我发送带有任何特殊字符的名字,然后json_decode()不接受它。

名称:sathish&库马尔
位置:班加罗尔

我尝试使用utf8_encode()和var_dump()函数

在第一种情况下,var_dump显示
字符串(43)"{"name":"sathish","location":"bangalore"}"

在第二种情况下,var_dump显示
字符串(18){"name":"sathish"

在这种情况下,它以18个字符结尾,如果我遗漏了什么。请帮我解决这个问题。

JavaScript

function createTC()
{
    var p=document.forms['TCForm'];
    var JSONObject =new Object;
    JSONObject.name=p['txtName'].value;
    JSONObject.location=p['txtLocation'].value;
    JSONstring = JSON.stringify(JSONObject);
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        var request = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        var request = new XMLHttpRequest();
    }
    var random1 = Math.random();
    var urlstr="../TraineeCreation/createTC.php?rand="+random1+"&json="+JSONstring;    
    request.open("GET", urlstr , true);
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
            alert(request.responseText);
    }
    request.send(null);
}

谢谢

当您在查询字符串中放入JSON时,"与"符号会对值进行拆分。您应该使用encodeURIComponent对组件进行正确编码。

看看这根线。