PHP(数组数组)特殊字符中的JSON解码字符串
因此,我在将JSON字符串转换为PHP数组时遇到了这个问题。数据是通过HTTP POST发送的,所以我知道可能需要一些解码 有人能告诉我如何在PHP中使用json_decode()将这个字符串转换成数组吗?PHP(数组数组)特殊字符中的JSON解码字符串,php,arrays,json,decoding,string-decoding,Php,Arrays,Json,Decoding,String Decoding,因此,我在将JSON字符串转换为PHP数组时遇到了这个问题。数据是通过HTTP POST发送的,所以我知道可能需要一些解码 有人能告诉我如何在PHP中使用json_decode()将这个字符串转换成数组吗? “[[\'37\”、“text\”、“\\\\”、[\'38\”、“\'text\”、“\\\”、[\'39\”、“\'text\”、“\'text\”、“\'\\\\”一个词两个词。你好?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
“[[\'37\”、“text\”、“\\\\”、[\'38\”、“\'text\”、“\\\”、[\'39\”、“\'text\”、“\'text\”、“\'\\\\”一个词两个词。你好?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
投入是:
[
["37", "text", ""],
["38", "text", ""],
["39", "text", userInputtedString]
]
其中userinputedstring
是:
一个词两个词。你好“退出”lol
^或者任何其他Unicode值出现了什么问题
只需像您提到的那样使用json_解码
$ans = json_decode($_POST["name-of-var"]);
这样就可以了。什么问题
只需像您提到的那样使用json_解码
$ans = json_decode($_POST["name-of-var"]);
这应该可以做到。您也可以使用uft8_编码(发送到HTML)和uft8_解码(接收),但不是正确的方式您也可以使用uft8_编码(发送到HTML)和uft8_解码(接收),但不是正确的方式在json_解码之前使用utf8_编码
$str = "[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]";
$str = utf8_encode($str);
$str = json_decode($str,JSON_UNESCAPED_SLASHES);
在json解码之前使用utf8编码
$str = "[[\"37\",\"text\",\"\\\"\\\"\"],[\"38\",\"text\",\"\\\"\\\"\"],[\"39\",\"text\",\"\\\"one word two words. Hello? \\\\\\\"escape\\\\\\\" lol\\\"\"]]";
$str = utf8_encode($str);
$str = json_decode($str,JSON_UNESCAPED_SLASHES);
这就是你在请求中得到的吗?如果是这样的话,那么这篇文章中的某个地方似乎有点不对劲。或者你在某个地方有一个addslashes,或者可能打开了magic quotes,或者两者兼而有之。etc@JonStirling是的,它只是作为一个AJAX参数来自Javascript。只需在javascript中的数组上使用标准的JSON.stringify()
。真奇怪…这就是你在请求中得到的吗?如果是这样的话,那么这篇文章中的某个地方似乎有点不对劲。或者你在某个地方有一个addslashes,或者可能打开了magic quotes,或者两者兼而有之。etc@JonStirling是的,它只是作为一个AJAX参数来自Javascript。只需在javascript中的数组上使用标准的JSON.stringify()
。太奇怪了…它只返回空值。对不起,我应该更具体一点啊,有趣的是,我的帖子输入看起来没有经过消毒。非常感谢。它只返回NULL。对不起,我应该更具体一点啊,有趣的是,我的帖子输入看起来没有经过消毒。非常感谢。这就解决了,谢谢。我必须在Javascript中执行utf8编码,然后才能通过POST传递输入。这解决了这个问题,谢谢。在通过POST传递输入之前,我必须在Javascript中执行utf8编码