比如标题,我尝试用encodeURI方法编码一个字符串,用解码URIComponent方法解码结果,然后我发现解码字符串和原来的字符串一样。所以我想知道是否所有使用 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
现在你用decodeURI
解码encodeURI
的结果,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
。