这个 bug 的发现过程在这里: https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=231510329&docid=99f032bff8b2a6ccb37ffd4414aa5575
调查结果表明从 excel 复制值出来时,可能会带有 \u2028 和 \u2029,这两个分别作为行分隔符和段落分隔符存在。
考虑微信可能用了 jsonp 的方式去实现了跨域请求,或者其他什么方式,使得即使在接口 response header 中声明 content-type 为 ‘application/json’ 后仍然需要小程序框架这边手动 JSON.parse 返回的字符串。然后导致了上述的错误。
查找了一些文档后,在这里向微信的同学提供一些文档方便理解问题:
https://stackoverflow.com/questions/2965293/javascript-parse-error-on-u2028-unicode-character
https://github.com/expressjs/express/issues/1132
https://github.com/rails/rails/issues/10320
再次恳请微信的同学看一下这个问题,然后给出答复。