我遇到一个问题,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;
}
但它只是一个字符列表,每当我得到一个新的特殊字符时,我必须手动处理它并将其添加到字符及其替换列表中。
如何正确处理此问题?
答案 0 :(得分:0)
尝试清理你的json
$cleanJsonData = preg_replace("/[[:cntrl:]]/", "", $jsonData);
$myData = json_decode($cleanJsonData, TRUE);
答案 1 :(得分:0)
json_decode
除了输入字符串为utf-8编码。
<?php
$json = json_decode(utf8_encode($str));
这应该有用。