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

yizhihongxing

当我们在编写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日

相关文章

  • JS集合set类的实现与使用方法示例

    JS集合(Set)类的实现与使用方法示例 Set类的实现 Set(集合)是ECMAScript 6中新增的数据结构,它类似于数组,但其成员的值都是唯一的,没有重复的值。Set类的实现与使用方法示例如下: class Set { constructor() { this.items = {} } /** * 方法名称:add * 方法描述:向集合中添加新的元素…

    JavaScript 2023年5月28日
    00
  • JavaScript 类型转换的详细实现

    下面是 JavaScript 类型转换的详细实现攻略。 1. 强制类型转换 JavaScript 中的强制类型转换是将一种类型的值转换为另一种类型的值。主要有以下几种类型转换的方式: 1.1 ToPrimitive:将值转换为基本类型值 使用 ToPrimitive 算法可以将一个值转换为基本类型值。该算法通常会被 JavaScript 内部的隐式类型转换所…

    JavaScript 2023年5月18日
    00
  • JS加载解析Markdown文档过程详解

    以下是详细的攻略,在此过程中,假设使用的是原生JS,没有使用任何外部库: 1. 获取Markdown文档内容 要加载Markdown文档,我们首先需要获取文件内容。可以使用XMLHttpRequest对象进行同步或异步的文件读取。这里我们以异步的方式读取Markdown文件。 function loadMarkdownFile(url, callback) …

    JavaScript 2023年5月27日
    00
  • JavaScript setTimeout与setTimeinterval使用案例详解

    JavaScript setTimeout与setInterval使用案例详解 setTimeout 在JavaScript中,setTimeout函数可以延迟执行一个函数,这个函数会在一定延迟时间后被调用,下面是使用setTimeout的基本语法: setTimeout(function, delay, param1, param2, …) funct…

    JavaScript 2023年5月27日
    00
  • 九种js弹出对话框的方法总结

    那么首先对于这个主题,我们需要先明确一下一些基本的概念。 什么是对话框 对话框是一种常用的网页中弹出提示信息的方式,类似于当前操作系统的模态对话框。它可以包含文本、按钮、表单等,显示给用户进行操作。 常见的对话框种类 在JS中,常见的对话框包括alert、confirm、prompt、layer、sweetAlert2、artDialog、mbox、weui…

    JavaScript 2023年6月11日
    00
  • 基于JavaScript创建动态Dom

    创建动态 DOM 可以通过多种方式,其中一种方法是使用 JavaScript。下面是基于 JavaScript 创建动态 DOM 的完整攻略,包含两条示例说明。 1. 在 HTML 中创建容器元素 首先,在 HTML 页面中创建一个空的容器元素,该元素的 id 属性可以用于后续操作。例如: <!DOCTYPE html> <html>…

    JavaScript 2023年5月28日
    00
  • 在JavaScript中对HTML进行反转义详解

    在JavaScript中,将HTML内容插入到页面上时,有时需要对HTML进行转义,以防止其中包含的特殊字符污染页面结构或导致安全隐患。而有时候,我们需要对已经进行了转义的HTML内容进行反转义,重新获得原始HTML内容。接下来,我将为大家详细讲解在JavaScript中对HTML进行反转义的完整攻略。 什么是HTML转义? HTML转义指的是将HTML标签…

    JavaScript 2023年5月19日
    00
  • Javascript实现购物车功能的详细代码

    当我们需要实现网页购物车时,JavaScript代码是必不可少的。下面是实现购物车功能的详细步骤: 1.创建HTML文件 首先,我们需要创建HTML文件,其中包含购物车图标、商品信息、价格和数量等。可以使用表格、列表或其他HTML元素来构建这个网页。 2.引入JavaScript代码 在HTML文件中,我们需要引入JavaScript代码,使用<scr…

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