zoukankan      html  css  js  c++  java
  • encodeURI()和encodeURIComponent() 区别

    URI: Uniform ResourceIdentifiers,通用资源标识符

    主要区别在于,encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码。来看下面的例子:
    var uri="http://www.jxbh.cn/illegal value.htm#start";
    //”http: //www.jxbh.cn/illegal%20value .htm#s tart”
    alert(encodeURI (uri)):
    //”http% 3A%2F%2Fwww.jxbh.cn%2 Fillegal%2 0value. htm%23 start”
    alert( encodeURIComponent (uri));

    encodeURI():会替换所有的字符,但不包括以下字符:

    类型 包含
    保留字符 ; , / ? : @ & = + $
     非转义的字符  字母 数字 - _ . ! ~ * ' ( )
    数字符号 #

    则 encodeURIComponent()会转义以上符号,但不包括:字母、数字、().!~*'-_

    encodeURI(';') => ;
    encodeURIComponent(';') => %3B // utf-8编码
    
    encodeURI('#') => #
    encodeURIComponent('#') => %23

    encodeURI 和 encodeURIComponent 的主要区别在于需要转义的字符范围不一样。

    使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。这也正是可以对整个URI使用encodeURI(),而只能对附加在现有URI后面的字符串使用encodeURIComponent()的原因所在。一般来说,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URL进行编码

  • 相关阅读:
    点击文本选中checkbox
    建立FTP服务器(FTP服务器名要与创建的用户名一致)
    asp概述
    windows server安装oracle
    1.Oracle数据库查看用户锁表和对表解锁的sql语句
    System.IO.File类和System.IO.FileInfo类
    13.JavaScript 类
    12.HTML DOM 允许 JavaScript 改变 HTML 元素的内容。
    [Python源码剖析]字符缓冲池intern机制
    [Python源码剖析]获取Python小整数集合范围
  • 原文地址:https://www.cnblogs.com/ygunoil/p/13297632.html
Copyright © 2011-2022 走看看