JSON解码问题

时间:2010-11-12 12:58:14

标签: php javascript json

当我使用Ajax发布文本时,如下所示:

var text = encodeURIComponent(transtext);

并使用PHP接收它:

$text=$_POST['text']

似乎PHP会自动解码编码的字符串。有什么方法可以避免这种情况吗?

好的,这是我想用ajax发布的原始Json字符串:

{"1":"\\"sdfsdfsdf" as&das&d ","2":"asdasd"}

我必须将encodeURIComponent里面的字符串放入其中,这样我就可以发布不编码的json.strigify&amp ;:

{"1":"%22asdasd%5C%22asdasd%22asdasd%26asdasd","2":"asdasd"}

但是当我在PHP中收到字符串时,“让jsondecode失败,因为我得到了

POST={"1":""sdfsdfsdf" as&das&d ","2":"asdasd"}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

此函数(encodeURIComponent()生成JSON。

它生成一个URL编码的字符串,这些字符串由服务器自动解码。我不明白你为什么不想要那个。

URL编码是一种纯传输编码,其目的是确保发送到服务器的数据适合通过HTTP GET或POST进行传输,并且不会出现乱码。在填充$_GET$_POST$_REQUEST数组之前,服务器会为您解码它是正确的做法。它确保数据与从客户端发送之前的形状相同。