首页 > 其他分享 >encodeURI和encodeURIComponent的区别?

encodeURI和encodeURIComponent的区别?

时间:2024-02-21 15:44:51浏览次数:15  
标签:字符 编码 URL 区别 URI encodeURIComponent encodeURI

在 JavaScript 中,encodeURI()encodeURIComponent() 是用于对 URI 进行编码的两个方法,它们可以将 URI 中的特殊字符进行转义,以便在 URL 中安全地传输和显示。

  1. encodeURI() 方法用于对整个 URI 进行编码,除了常见的字符(字母、数字、-、_、.、!、~、*、'、(、))外,不会对其他字符进行编码。这意味着保留了一些特殊字符,如 /:@& 等,不会被编码。该方法通常用于对整个 URL 进行编码,以确保 URL 的结构不被破坏。

  2. encodeURIComponent() 方法则用于对 URI 中的特定部分(如查询字符串参数值)进行编码。它会对所有非标准字符(包括常见字符)进行编码,确保所有字符都能在 URL 中安全传输。这意味着即使是常见的字符如 /:@& 等也会被编码成 %xx 的形式。

下面是一个简单的示例展示了 encodeURI()encodeURIComponent() 的用法:

let uri = "https://www.example.com/search?q=hello world&category=news";
let encodedUri = encodeURI(uri);
let encodedComponent = encodeURIComponent(uri);

console.log(encodedUri); // 输出:https://www.example.com/search?q=hello%20world&category=news
console.log(encodedComponent); // 输出:https%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3Dhello%20world%26category%3Dnews

总的来说,encodeURI() 用于编码整个 URI,而 encodeURIComponent() 则用于编码 URI 中的特定部分,根据具体需求选择合适的方法进行编码。

标签:字符,编码,URL,区别,URI,encodeURIComponent,encodeURI
From: https://www.cnblogs.com/crispyChicken/p/18025389

相关文章

  • 静态库和动态库的区别
    静态库是在编译阶段和可执行文件打包链接在一起的,它可以看成是中间文件的简单集合,保留了符号,只有在静态链接的过程中,才会真正地做地址分配和重定位。而动态库在编译阶段,它的代码并不会被合并进可执行文件中,在运行时才会被加载进内存,它被加载进内存的地址是不固定的,所以每次加载完......
  • ETL、ELT区别以及如何正确运用
    一、 浅谈ETL、ELTETL与ELT的概念ETL (Extract, Transform, Load) 是一种数据集成过程,通常用于将数据从一个或多个源系统抽取出来,经过清洗、转换等处理后,加载到目标数据存储中。这种方法适用于需要对数据进行加工和整合后再加载到目标系统的场景,如数据仓库构建、商业智......
  • C++ 以指针(*)作为参数和以指针引用(*&)作为参数的区别
    首先说结论,传入指针只能更改指针所指向的那一块内存的数据,传入指针引用既能修改指针本身的地址也能修改指针所指向的内存。假设现在有这样一个功能:传入一个数组指针,并将另一个数组的地址赋值给被传入的指针,以完成数据更新功能。定义两个函数,分别以指针和指针引用为参数://数组......
  • C#和Java Model的区别
    下面是一个简单的患者类示例,分别使用C#和Java实现,包含患者ID和姓名属性:C#示例:publicclassPatient{//患者ID属性publicintPatientId{get;set;}//姓名属性publicstringName{get;set;}//构造函数publicPatient(intpa......
  • 分布式、集群和微服务之间的区别
    分布式、集群和微服务之间的区别   分布式系统是一种系统范式,而分布式架构是一种系统设计的方法论。它们的含义在某些情况下可能会重叠,但在其他情况下可能会有细微的区别。  分布式系统1.分布式系统概念是指由多个相互独立的节点(或者进程)组成的系统,这些节点通过网络......
  • Java集合篇之set,面试官:请说一说HashSet、LinkedHashSet、TreeSet的区别?
    写在开头Java的集合世界中主要由List,Set,Queue,Map构成,我们在之前的博文中已经学习了List,接下来我们继续学习Set集合。Set特点:存取无序,不可以存放重复的元素,不可以用下标对元素进行操作HashSet作为Set容器的代表子类,HashSet经常被用到,我们通过源码去分析它【源码查看】public......
  • 执行shell脚本文件有多少种方法?有什么区别?
    执行shell脚本文件有多少种方法?有什么区别?执行.sh​文件有几种方法,主要包括:直接运行:./your_script.sh这种方式需要在脚本文件的目录下执行,并确保脚本文件有执行权限(chmod+xyour_script.sh​)。这种方式的路径解析是相对于当前工作目录的。通过bash解释器运行:ba......
  • 执行shell脚本文件有多少种方法?有什么区别?
    执行shell脚本文件有多少种方法?有什么区别?执行.sh​文件有几种方法,主要包括:直接运行:./your_script.sh这种方式需要在脚本文件的目录下执行,并确保脚本文件有执行权限(chmod+xyour_script.sh​)。这种方式的路径解析是相对于当前工作目录的。通过bash解释器运行:ba......
  • int(1) 和 int(10) 有什么区别
    在mysql中int占4个字节,那么对于无符号的int,最大值是2^32-1=4294967295零填充一般int后面的数字,配合zerofill一起使用才有效。先看个例子:CREATETABLE`user`(`id`int(4)unsignedzerofillNOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT......
  • TCP跟UDP区别
    TCP协议跟UDP协议都存在于传输层,都在程序之间传输数据。、 传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重......