项目开发中遇到前端编码的问题,总是搞不清楚
encodeURI
和encodeURIComponent
两者的区别,今天就来整理一下:
两者最主要的区别是encodeURI
不会编译有些httpURL
中的预留符号,而encodeURIComponent
会编译,参考下图:
从上图中可以清晰地看出两者对httpURL
中的预留符号编译的结果,不过无论上述哪一种,都不会对[a-zA-Z0-9]
的字符以及!*()'.
进行编码,即编码之后还是本身。如果遇到中文的话,两者的解析结果是一样的。
还有一点要注意的是decodeURI
和decodeURIComponent
是用于解码的,decodeURI
对应encodeURI
,decodeURIComponent
是对应encodeURIComponent
的。