一、LESP
先了解下JSON处理中特殊字符的正确处理方式。
在 ECMAscript 5.1 ( https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.2 ) 中有这样一句话:
JSON uses a more limited set of white space characters than WhiteSpace and allows Unicode code points U+2028 and U+2029 to directly appear in JSONString literals without using an escape sequence.
这意味着 JSON.stringify 和 JSON.parse 都不应当对空格、U+2028、U+2029这三个字符进行转义,例如对于空格:
可以看到空格未进行转义,同样的道理,U+2028 也不会被转义:
但对于 ' ' ,是需要转义的:
Javascript的编码格式为UCS-2,JSON.parse()一个包含特殊字符的字符串会报错,将原字符串中的特殊字符特换掉就行(也可以替换成空)
str = str.Replace(/u2028/g, "\u2028");
参考链接:
https://www.cnblogs.com/rrooyy/p/5349978.html