鍍金池/ 問答/HTML/ 為什么要對中文進(jìn)行兩次encodeURIComponent

為什么要對中文進(jìn)行兩次encodeURIComponent

調(diào)用小程序中H5頁面的wx.reDirectTo時,url中含有中文,為什么要對url中的中文進(jìn)行兩次encode編碼才有效,不然鏈接跳不過去

回答
編輯回答
伴謊

這個主要是為了解析 URL 中的 % 這個符號吧,比如 encodeURIComponent('我') 會變?yōu)?"%E6%88%91",然后第二次解析的話,會將所有的 % 變?yōu)?%25,變?yōu)?"%25E6%2588%2591"

至于這么做的意義,我猜哈,應(yīng)該是為了兼容所有的編碼規(guī)范吧,因?yàn)槿绻鶕?jù) "%25E6%2588%2591" 來 decode 都能將字符串還原為 "%E6%88%91",而如果直接還原 "%E6%88%91" 的話,不同編碼規(guī)范還原的字符串不一致,會出現(xiàn)亂碼現(xiàn)象。

2018年6月2日 17:14