热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

理解encodeURI与encodeURIComponent及其解码函数的区别与应用

本文探讨了`encodeURI`和`encodeURIComponent`以及它们对应的解码函数的区别与应用场景。这两个编码方法主要用于处理URI(统一资源标识符),用于标识互联网上的资源(如网页或文件)及其访问方式(如HTTP或FTP)。`encodeURI`适用于整个URI的编码,而`encodeURIComponent`则针对URI中的特定组件进行编码,确保每个部分都能正确解析。解码函数则分别用于将编码后的URI和URI组件还原为原始形式。

一、这四个要领的用途

1、用来编码和解码URI的

一致资本标识符,或叫做 URI,是用来标识互联网上的资本(比方,网页或文件)和如何接见这些资本的传输协定(比方,HTTP 或 FTP)的字符串。除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四个用来编码和解码 URI 的函数以外 ECMAScript 言语本身不供应任何运用 URL 的支撑。

2、URI构成情势
一个 URI 是由组件分隔符支解的组件序列构成。其平常情势是:
Scheme : First / Second ; Third ? Fourth

个中斜体的名字代表组件;“:”, “/”, “;”,“?”是看成分隔符的保存字符。

3、有和差别?

encodeURI 和 decodeURI 函数操纵的是完全的 URI;这俩函数假定 URI 中的任何保存字符都有迥殊意义,一切不会编码它们。

encodeURIComponent 和 decodeURIComponent 函数操纵的是构成 URI 的一般组件;这俩函数假定任何保存字符都代表一般文本,所以必需编码它们,所以它们(保存字符)出现在一个完全 URI 的组件内里时不会被诠释成保存字符了。

以上申明摘自ECMAScript规范,为了轻易读懂做了点编辑加工。

4、图解四个函数的差别:

ECMA对这四个函数还做了细致诠释,能够是为了写的更逻辑化一些,采用了相似变量合营逻辑的写法来申明,然则让初学者看得云里雾里的迥殊绕,所以有必要把它写得更像是人读的东西……

《encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区分》


推荐阅读
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • Hybrid 应用的后台接口与管理界面优化
    本文探讨了如何通过优化 Hybrid 应用的后台接口和管理界面,提升用户体验。特别是在首次加载 H5 页面时,为了减少用户等待时间和流量消耗,介绍了离线资源包的管理和分发机制。 ... [详细]
  • 本文详细解析了Java中hashCode()和equals()方法的实现原理及其在哈希表结构中的应用,探讨了两者之间的关系及其实现时需要注意的问题。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文详细介绍了JSP的三大指令:page、include和taglib,重点探讨了静态包含与动态包含的区别及其应用场景,并解释了如何使用taglib指令引入第三方标签库。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ... [详细]
  • 性能测试工具的选择与应用
    本文探讨了性能测试工具的重要性及其在软件测试中的作用,重点介绍了选择合适性能测试工具的考量因素,并对几种常用的性能测试工具进行了对比分析。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
author-avatar
钟杰辉_576
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有