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