不可见字符导致意外的 EOF 错误
Invisible character leads to Unexpected EOF error
在尝试处理我面对的字符串时
Error: SyntaxError: Unexpected EOF
我无法控制字符串的生成方式。我设法通过 substring()
的二分法隔离了有问题的字符,但是 console.log()
或 JSON.parse()
都没有打印它:我得到
> console.log(c);
""
> JSON.parse(c);
""
还
> c.length;
1
我只知道后面跟着一个\n
。
我如何识别它并摆脱它?
更新
> console.log(encodeURIComponent(c));
%E2%80%A8
假设这是唯一有问题的字符,并且由于它的 percent-encoding 已被识别,解决方案是替换解码的 percent-encoding 字符串:
> c.length;
1
> let badchar = decodeURI("%E2%80%A8");
> let regex = new RegExp(badchar, "g");
> newc = c.replace(regex, "");
> newc.length;
0
或者如果由于某种原因 RegExp
不可用:
> newc = c.split(badchar).join("")
在尝试处理我面对的字符串时
Error: SyntaxError: Unexpected EOF
我无法控制字符串的生成方式。我设法通过 substring()
的二分法隔离了有问题的字符,但是 console.log()
或 JSON.parse()
都没有打印它:我得到
> console.log(c);
""
> JSON.parse(c);
""
还
> c.length;
1
我只知道后面跟着一个\n
。
我如何识别它并摆脱它?
更新
> console.log(encodeURIComponent(c));
%E2%80%A8
假设这是唯一有问题的字符,并且由于它的 percent-encoding 已被识别,解决方案是替换解码的 percent-encoding 字符串:
> c.length;
1
> let badchar = decodeURI("%E2%80%A8");
> let regex = new RegExp(badchar, "g");
> newc = c.replace(regex, "");
> newc.length;
0
或者如果由于某种原因 RegExp
不可用:
> newc = c.split(badchar).join("")