web开发中URL编码简介

1、为何要 urlencode()?

  1. 由于当字符串数据以url的形式传递给web服务器时,字符串中是不容许出现空格和特殊字符的。
  2. 也就是说,url的参数传递的时候,须要遵循必定的url规范才能正确的传送。
  3. 一般若是同样东西须要编码,说明这样东西并不适合传输。缘由多种多样,如Size过大,包含隐私数据,对于Url来讲,之因此要进行编码,是由于Url中有些字符会引发歧义。
  4. 大部分须要编码的缘由是因为有特殊字符(如@、#、&等)或者参数是中文形式。
  5. Url编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。

2、javascript中编码的函数

  1. escape() 方法:javascript

    (1)采用ISO Latin字符集对指定的字符串进行编码。
    (2)全部的空格符、标点符号、特殊字符以及其余非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。
    (3)好比,空格符对应的编码是%20。
    (4)不会被此方法编码的字符: @ * / +
  2. encodeURI() 方法:php

    (1)把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
    (2)不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
  3. encodeURIComponent() 方法:html

    (1)把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
    (2)与encodeURI()相比,这个方法将对更多的字符进行编码,好比 / 等字符。
    (3)因此若是字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,不然 / 字符被编码以后URL将显示错误。
    (4)不会被此方法编码的字符:! * ( ) '
  4. 重点:java

    (1)所以,对于中文字符串来讲,若是不但愿把字符串编码格式转化成UTF-8格式的(好比原页面和目标页面的charset是一致的时候),只须要使用 escape。
    (2)若是你的页面是GB2312或者其余的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。
    (3)另外,encodeURI/encodeURIComponent是在javascript1.5以后引进的,escape则在javascript1.0版本就有。

3、php中关于编码的函数

  1. 主要是urlencode和urldecode
  2. 其余的参考:https://www.cnblogs.com/xuey/...

4、划重点

  1. url的编码是为了让一些特殊字符以及中文可以经过编码转换成安全的字符传递,使之符合url标准。
  2. 大部分的js中编码函数多使用encodeURIComponent,由于该函数是编码范围最大的函数。可是还须要根据业务需求选择不一样的编码函数。

5、参考连接

https://www.cnblogs.com/liuho...web

相关文章
相关标签/搜索