为什么要对中文进行两次encodeURIComponent

调用小程序中H5页面的wx.reDirectTo时,url中含有中文,为什么要对url中的中文进行两次encode编码才有效,不然链接跳不过去

阅读 2.9k
1 个回答

这个主要是为了解析 URL 中的 % 这个符号吧,比如 encodeURIComponent('我') 会变为 "%E6%88%91",然后第二次解析的话,会将所有的 % 变为 %25,变为 "%25E6%2588%2591"

至于这么做的意义,我猜哈,应该是为了兼容所有的编码规范吧,因为如果根据 "%25E6%2588%2591" 来 decode 都能将字符串还原为 "%E6%88%91",而如果直接还原 "%E6%88%91" 的话,不同编码规范还原的字符串不一致,会出现乱码现象。

推荐问题
宣传栏