带有特殊字符的json_decode

时间:2013-12-05 09:28:11

标签: javascript php

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

名称:sathish
位置:bangalore

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

名称:sathish& kumar
位置:bangalore

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

在第一种情况下,var_dump显示
串(43) “{” 名称 “:” Sathish所在 “ ”位置“: ”班加罗尔“}”

在第二种情况下,var_dump显示
串(18) “{” 名称 “:” 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);
}

感谢

1 个答案:

答案 0 :(得分:1)

当您将JSON放入查询字符串时,&符号正在拆分该值。您应该使用encodeURIComponent正确编码组件。

看看this thread