使用解码URIComponent来对带有编码方法的字符串编码进行解码是否存在问题

时间:2018-09-17 03:21:30

标签: javascript urlencode

例如标题,我尝试用encodeURI方法编码一个字符串,并用encodeURIComponent方法解码结果。然后我发现解码字符串与原始字符串相同。所以我想知道是否所有字符串都使用可以使用encodeURIComponent解码encodeURI。

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"

1 个答案:

答案 0 :(得分:1)

这是所有功能的输出:

输入字符串:https://www.google.co.in/

来自encodeURI的输出字符串:https://www.google.co.in/

来自encodeURIComponent的输出字符串:https%3A%2F%2Fwww.google.co.in%2F

现在,您用encodeURIdecodeURI解码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旨在解码所有内容,因此可以安全使用它,因为其规范意味着decodeURIencodeURI和{{1 }}和decodeURIComponent