urlencode/decode中冒号“:”是否会被转义?

http://www.w3school.com.cn/ta...
中url编号中有写到将:号转成%3a,但是:
1, 浏览器中输入www.baidu.com?x=a b,会被转成https://www.baidu.com/?x=a%20b;但是输入wwww.baidu.com?x=a:b则不会转码。
2, decodeURL("%3a")不会做转化
3, 同时我查了资料https://www.baidu.com/s?ie=ut... 中有提到:冒号是合法字符。

请问这个矛盾如何解释?如何将Node.js收到的%3a转成:冒号?(如果不用replace()的话)

阅读 9.5k
1 个回答

encodeURI 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

encodeURIComponent('a:b')
decodeURIComponent('a%3Ab')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题