zoukankan      html  css  js  c++  java
  • escape()、encodeURI()、encodeURIComponent()三种编码方式的区别

      最近在项目中都遇到了编码的问题,有对字符串进行编码的,也有对URL进行编码了,明明是挺简单的问题,但着实也给自己挖了好多坑啊,所以今天来记录一下这三种编码方式的区别。

    一、区别

    1、escape()

      escape函数是对字符串进行编码的,作用是让他们在所有电脑上可见。编码之后的效果是%XX或者%uXXXX这种形式。解码函数:unescape()

      其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码,其余的都会。同时这个方法只适用于字符串,不适用于URL编码

    2、encodeURI()和encodeURIComponent()是一类

      这两种方法都是对URL进行编码的,唯一的区别是编码的范围不一样。

      encodeURI方法不会对下列字符编码 :ASCII字母、数字、~!@#$&*()=:/,;?+'。解码函数:decodeURI()

      encodeURIComponent方法不会对下列字符编码: ASCII字母、数字、~!*()'解码函数:decodeURIComponent()

      由此可见,encodeURIComponent编码范围比encodeURI的大。

    二、应用范围

      如果只是对字符串进行编码,与URL没有任何关系,那么escape方法是最合适的。

      如果要编码整个URL,那就用encodeURI方法。

      如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码

      如果要编码URL,但需要跳转地址,那只能用encodeURI方法,因为encodeURIComponent会对 :/ 进行编码,会导致没法跳转地址。

      
      
     
  • 相关阅读:
    项目记录,仿今日头条app
    数组过滤后的重新排序问题
    用函数刷新页面内容比刷新页面要好
    html js绑定键盘按键触发事件(按回车键登陆)
    图片上传前压缩 lrz库
    微信 获取openid
    旅游项目总结
    UWP深入学习五: 传感器与搜索、共享及链接
    UWP深入学习四:动画及图像
    UWP深入学习三:依赖属性、附加属性和数据绑定
  • 原文地址:https://www.cnblogs.com/daheiylx/p/12504210.html
Copyright © 2011-2022 走看看