js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解

当我们在编写JavaScript时,常常需要处理字符串。在这个过程中,我们可能需要对字符串进行编码以保证其正确解析。以下是escape()、encodeURI()和encodeURIComponent()编码函数的详解和区别:

escape()

escape()函数将字符串转换为UTF-8编码格式,并将一些特殊字符,例如@、空格、+、/、:、等符号转换为十六进制的字符串。这样做是为了避免URL出现一些不符合规范的字符。

对于非 ASCII 字符,escape() 函数将其编码为 “%u*” 格式,其中*是字符的 Unicode 编码值的十六进制表示。例如,汉字 "你好" 在 escape() 函数中编码为 "%u4F60%u597D"。这种编码方式在URL中的作用非常有限,实际上很少使用。

以下是一个使用escape()函数的示例:

let str1 = 'Hello World@+ / ';
let encodedStr1 = escape(str1);
console.log(encodedStr1); //"Hello%20World%40%2B%20%2F%20"

encodeURI()

encodeURI() 函数用于对URL中的字符进行编码,用于URL中的值、参数、等内容。在它的作用范围内,只有空格、@、#、$、&、+、,、/、;、=、?、以及Unicode编码的字符。所有其他的字符都将被保持不变。

以下是一个使用encodeURI()函数的示例:

let url1 = "https://www.example.com/?id=100&name=Tom's Blog";
let encodedUrl1 = encodeURI(url1);
console.log(encodedUrl1);  //"https://www.example.com/?id=100&name=Tom's%20Blog"

encodeURIComponent()

encodeURIComponent() 函数和encodeURI()很像,但是更加强制地使用编码方式,对于满足URI规则的字符,我们并不想对它们进行编码,因为我们需要这些字符来构造URL,但是对于标点符号和其他字符,仍然需要被进行编码,否则可能会对URL解析造成影响。

以下是一个使用encodeURIComponent()函数的示例:

let url2 = 'https://search.com/result?q=javascript&t=hello world';
let encodedUrl2 = encodeURIComponent(url2);
console.log(encodedUrl2);  //"https%3A%2F%2Fsearch.com%2Fresult%3Fq%3Djavascript%26t%3Dhello%20world"

综上所述,这三个编码函数有其各自的使用场景,具体使用时需要根据情况进行选择。需要注意,对于URL中的路径、参数、以及其他协议都有各自的字符集规范,所以在使用这些函数时一定要特别注意。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 关于JavaScript回调函数的深入理解

    关于JavaScript回调函数的深入理解 什么是回调函数 回调函数是一种在JavaScript中常见的编程模式。它是一个函数,可以作为参数传递给其他函数,以便在其他函数完成之后执行。虽然它非常实用,但许多初学者仍然对回调函数感到困惑。 当我们在使用 JavaScript 编写异步代码时,比如在进行 Ajax 请求时,我们不能直接通过在代码中写入“等待服务器…

    JavaScript 2023年6月10日
    00
  • 浅谈正则表达式 实例入门

    浅谈正则表达式 实例入门 什么是正则表达式? 正则表达式(Regular Expression),又称正规表达式、常规表示法、规则表达式,是计算机科学的一个概念。正则表达式利用单个字符串来描述、匹配符合某个规则的字符串集合。正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式作为一种工具,可以在文本中…

    JavaScript 2023年6月10日
    00
  • 当前流行的JavaScript代码风格指南

    当前流行的 JavaScript 代码风格指南 在 JavaScript 社区中,有很多流行的代码风格指南,比如 Airbnb JavaScript 代码风格指南,Google JavaScript 代码风格指南等。这些指南都提供了详细的代码规范和最佳实践,帮助开发者保证代码的质量和可读性。以下是一个完整的攻略。 1. 注释和命名规范 良好的注释和命名规范可…

    JavaScript 2023年5月19日
    00
  • 关于JavaScript中的数组方法和循环

    关于JavaScript中的数组方法和循环,我们可以从下面几个方面来进行详细讲解。 数组方法 push方法 push方法可以将一个或多个值添加到数组的末尾,并返回修改后的数组长度。示例代码如下: let fruits = [‘apple’, ‘banana’]; let len = fruits.push(‘orange’); console.log(fru…

    JavaScript 2023年5月18日
    00
  • JavaScript中对象property的读取和写入方法介绍

    下面我就来为你详细讲解“JavaScript中对象property的读取和写入方法介绍”。 什么是对象property 在JavaScript中,对象是一种基本类型,它由key-value键值对组成。对象的属性可以是任意的JavaScript值,例如数字、布尔值、字符串、函数、甚至可以是另一个对象。在JavaScript中,我们使用点(.)或方括号([])访…

    JavaScript 2023年5月27日
    00
  • JavaScript中new操作符的原理与实现详解

    JavaScript中new操作符的原理与实现详解 什么是new操作符? new 是 JavaScript 中一个关键字,常用于创建对象实例。使用 new 创建实例时,会自动执行构造函数(constructor),并将该实例绑定到构造函数的 this 上。 function Person(name, age) { this.name = name; this…

    JavaScript 2023年6月10日
    00
  • java实现猜数字游戏

    接下来我将为您详细讲解“Java实现猜数字游戏”的完整攻略。 步骤一:创建项目并编写代码 首先,我们要创建一个Java项目,并在其中创建一个名为GuessNumber的类。代码如下所示: import java.util.Random; import java.util.Scanner; public class GuessNumber { public s…

    JavaScript 2023年6月11日
    00
  • 前端组件化基础知识详细讲解

    前端组件化基础知识详细讲解 什么是前端组件化 前端组件化,是一种将页面拆分成多个可重用组件的开发方式。这种方式将页面抽象为一系列具有独立功能和样式的小组件,而这些组件可以在不同的页面中重复使用和组合,实现了代码的复用和模块化。 组件的基本要素 在前端组件化中,组件是构成页面的基本单位。组件有三个基本要素: HTML 结构:组件必须被封装在一个 HTML 元素…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部