比如标题,我试着用encodeURI方法编码一个字符串,然后用decodeURIComponent方法解码结果。然后我发现解码字符串和原始字符串一样。所以我想知道所有用encodeURI编码的字符串是否都可以使用decodeURIComponent解码。
encodeURI("http://www.example.com?type=qqq&string=qqq+<>`www");
//"http://www.example.com?type=qqq&string=qqq+%3C%3E%60www"
decodeURIComponent("http://www.example.com?type=qqq&string=qqq+%3C%3E%60www");
//"http://www.example.com?type=qqq&string=qqq+<>`www"
这是所有功能的输出:
输入字符串:https://www.google.co.in/
来自encodeURI
的输出字符串:https://www.google.co.in/
来自encodeURIComponent
的输出字符串:https%3A%2F%2Fwww.google.co.in%2F
现在你用encodeURI
和decodeURI
解码decodeURIComponent
的结果,它会给你相同的结果。但如果你解码encodeURIComponent
的结果,它会给你以下结果。
输入字符串:https%3A%2F%2Fwww.google.co.in%2F
来自decodeURI
的输出字符串:https%3A%2F%2Fwww.google.co.in%2F
来自decodeURIComponent
的输出字符串:https://www.google.co.in/
所以结论是decodeURIComponent
旨在解码一切,所以使用它是安全的,因为它的规格意味着decodeURI
与encodeURI
和decodeURIComponent
与encodeURIComponent
。