JSON 解码 PHP 中的字符串(数组的数组)特殊字符

JSON decode string in PHP (array of arrays) Special characters

所以我在将 JSON 字符串转换为 PHP 数组时遇到了这个问题。数据通过 HTTP POST 发送,所以我知道可能需要一些解码。

谁能告诉我如何使用 PHP 中的 json_decode() 将此字符串转换为数组? "[[\"37\",\"text\",\"\\"\\"\"],[\"38\",\"text\",\"\\"\\"\"],[\"39\",\"text\",\"\\"one word two words. Hello? \\\\"escape\\\\" lol\\"\"]]"

输入是:

[
    ["37", "text", ""],
    ["38", "text", ""],
    ["39", "text", userInputtedString]
]

其中 userInputtedString 是: one word two words. Hello? "escape" lol

^ 或任何其他 Unicode 值

好像是什么问题?

只需像您提到的那样使用 json_decode。

$ans = json_decode($_POST["name-of-var"]);

这应该可以做到。

您也可以使用 uft8_encode(发送到 HTML)和 uft8_decode(接收)但不是正确的方式

在json_decode

之前使用utf8_encode
$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);