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);
所以我在将 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);