encodeURIComponent(location.href)的使用

CGI(Common Gateway Interface)

  • 是 WWW 技术中最重要的技术之一,有着不可替代的重要地位。CGI 是外部应用程序(CGI 程序)与 WEB 服务器之间的接口标准,是在 CGI 程序和 Web 服务器之间传递信息的过程。CGI 规范允许 Web 服务器执行外部程序,并将它们的输出发送给 Web 浏览器,CGI 将 Web 的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。

encodeURIComponent 的作用

  • 将文本字符串编码为一个有效的统一资源标识符 (URI)。
  • 应用:
    如果 username = ‘a&foo=boo’ 而不用 encodeURIComponent 的话,整个参数就成了 name=a&foo=boo, 这样 CGI 就获得两个参数 name 和 foo.
    Javascript 里还有个同样功能的函数 encodeURI, 但此方法不会对下列字符进行编码:":"、"/"、";" 和 “?”。

其他函数:

  • js 对文字进行编码涉及3个函数:escape, encodeURI, encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent
  1. 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
    例如:

  1. 进行url跳转时可以整体使用encodeURI

例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21");

  1. js使用数据时可以使用escape,例如:搜藏中history纪录。
  • escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

你可能感兴趣的:(前端学习)