URL编码

为什么要编码

网络标准对URL做了规定:"只有字母和数字[0-9a-zA-Z]、一些特殊符号"$-_.+!*'(),"[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。"

编码的四种情况

  1. 网址路径中包含汉字
    网址路径的编码,用的是utf-8编码
  2. 查询字符串包含汉字
    查询字符串的编码,用的是操作系统的默认编码
  3. Get方法生成的URL包含汉字
    这时的编码方法由网页的编码决定,也就是由HTML源码中字符集的设定决定
  4. Ajax调用的URL包含汉字
    在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码

编码的四个函数

  1. encodeURI()
  2. encodeURIComponent()
  3. decodeURI()
  4. decodeURIComponent()

区别在于:

encodeURI方法不会对下列字符编码

1. ASCII字母
2. 数字
3. ~!@#$&*()=:/,;?+'

encodeURIComponent方法不会对下列字符编码

1. ASCII字母
2. 数字
3. ~!*()'

你可能感兴趣的:(URL编码)