JSON.parse:bad escaped character
JSON.parse: bad control character in string literal
在做一个ajax应用,服务器返回json格式,由jquery分析并输出到页面上,就遇到以上的问题,百思不得其解。后来经过细节检查,发现原因是字符串中包含一些非打印的控制字符, 其ASCII码在1--31之间,故导致出现以上异常。
知道这个原因后,将这些不可打印字符替换为空即可,非常简单, 利用正则表达式将ASCII 值为0至31的字符替换掉即可:
$str = preg_replace("|[".chr(1)."-".chr(31)."]+|",'', $str);
另外,要注意换行等特殊字符