前端Array.join('\n')不同平台提交到后端结果不一样

let a= ['hello','hi'].join('\n')
inspectionFetch('test',{ID:a })

同一代码, 在pc浏览器或手机浏览器中打开和在钉钉中打开,传递到后端的结果就不同。

浏览器发送

钉钉发送

可以看到钉钉端其实是符合预期的。 但是推测这个差异不是JS引擎处理阶段产生的,验证代码:

let a= ['hello','hi'].join('\n')
console.log(encodeURI(a))

无论在浏览器中还是钉钉下,打印结果都是hello%0Ahi%0A表示的就是LF符号,也就是\n

剩下的就不知道是哪个环节的问题了, 为了避免这个问题, 暂时还是不用单纯的\n符号来做合并了。实测使用\r\n代替\n得到的结果在以上两个平台是一致的。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 yionr99@gmail.com