1

我遇到了一个问题,json 可以对数组进行编码,但是由于特殊字符,它无法正确解码它。

我在 stackoverflow 上找到了这个试图提供帮助的函数:

function escapeJsonString($value) 
{  # list from www.json.org: (\b backspace, \f formfeed)
                $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
                $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
                $result = str_replace($escapers, $replacements, $value);
                return $result;
    }

但它只是一个字符列表,每次我得到一个新的特殊字符时,我都必须手动处理它并将其添加到字符及其替换列表中。

我该如何妥善处理这个问题?

4

2 回答 2

0

尝试清理你的 json

$cleanJsonData = preg_replace("/[[:cntrl:]]/", "", $jsonData);
$myData = json_decode($cleanJsonData, TRUE);
于 2013-03-01T11:16:15.733 回答
0

json_decode除了要进行 utf-8 编码的输入字符串。

<?php
$json = json_decode(utf8_encode($str));

这应该有效。

于 2013-03-01T11:16:53.480 回答