JavaScript 之 encodeURIComponent
用到这个方法的起因
首先有一个 json 数据,如 {programId:1,paperId:1}
,将这个 json 数据转成 String
类型,拼接到 uri
,成为 ?data={"programId":1,"paperId":1}
,再将此 href
填进要导出的 csv 文件,问题来了:csv 以逗号作分隔符,这样就会变成?data={"programId":1
是一列,"paperId":1}
是一列。
很囧。。。。。
基于上方原因尝试的“愚蠢”的办法
找了很多关于 csv 导出处理逗号的博客,大多说的是将逗号用""
包起来,可是方法不适用于我的情况阿!!!用这个方法拼接字符串拼接了很久,导致我看到"" , csv
就想吐。
拼接最后的结果是"https://local.thoughtworks.school/api/report/score-sheet/2?data={""programId"":${programId},"""paperId":${paperId}}
不接受任何批评(划重点!!)
用 encodeURIComponent 试试?
给林老师看了上面方法的结果,林老师笑了笑(怎么感觉我在写小学作文),给我们展示了神奇的 encodeURIComponent
方法,将对象字符串转换成地址栏能识别的 url
const data = {programId:1,paperId:1};
encodeURIComponet(JSON.stringify(data));
//output:"%7B%22programId%22%3A2%2C%22paperId%22%3A1%7D"
总结
怪自己太年轻,总觉得自己能试出来。。。