javascript 中存在几种对 URL 字符串进行编码的方法:escape(),encodeURI(),以及 encodeURIComponent()。这几种编码所起的作用各不相同。
● escape() 方法
采用 ISO Latin 字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非 ASCII 字符都将被转化成 %XX 格式的字符编码(XX 等于该字符在字符集表里面的编码的 16 进制数字)。比如,空格符对应的编码是 %20。
不会被此方法编码的字符: @ * / +
/**
* 最终会被转码的字符有空格,逗号。半角句号不会被编码。可能是考虑到是对 URL 进行编码,URL 中有很多 dot,因此忽略 dot 的编码(个人理解:除了半角句号外,其它的涉及到标点的都会被编码)。下面的代码将会输出:/@*+I%20am%20Chinese%2C.%u6211
*/
var s = "/@*+I am Chinese,.我";
document.write(s);
● encodeURI() 方法
把 URI 字符串采用 UTF-8 编码格式转化成 escape 格式的字符串。该方法主要是对地址栏的 URL 进行编码,因此地址栏中所用到的字符不会被编码。
不会被此方法编码的字符:! @ # $ & * ( ) = : / ; ? + '
/**
* 该函数主要是对浏览器的地址栏进行编码。
* 下面代码运行结果会在浏览器的地址栏中显示:http://www.baidu.com/?id=12&key=%E5%8C%97%E4%BA%AC%E4%B8%A4%E4%BC%9A&money=$12
*/
var loc = "http://www.baidu.com?id=12&key=北京两会&money=$12";
window.location = encodeURI(loc);
● encodeURIComponent() 方法
把 URI 字符串采用 UTF-8 编码格式转化成 escape 格式的字符串。与 encodeURI() 相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了 URI 的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL 将显示错误。
/**
* 该段代码的字符串中含有 "/",因此编码完后的 URL 不是合法的 URL 格式
* 输出结果为:http%3A%2F%2Fwww.baidu.com%3Fid%3D12%26key%3D%E5%8C%97%E4%BA%AC%E4%B8%A4%E4%BC%9A%26money%3D%2412
*/
var loc = "http://www.baidu.com?id=12&key=北京两会&money=$12";
document.write(encodeURIComponent(loc));
分享到:
相关推荐
在JavaScript(JS)中,处理中文字符编码是一个常见的需求,特别是在与服务器交互或者处理文本数据时。GB2312编码是一种在中国大陆广泛使用的简体中文字符集,它包含了6763个常用汉字和一些其他字符。在JavaScript中...
它不能识别GBK编码中的多字节字符(比如某些繁体字),并且对于含有非法GBK编码的字符串可能会误判。在实际应用中,你可能需要更复杂的解决方案,例如借助第三方库或者服务器端的GBK解码能力。 在"检查非GB2312字符...
特别是在处理包含多种字符集(如英文与中文)的字符串时,考虑到不同字符编码长度的差异性,简单地按照字符数量进行截取可能会导致显示效果不佳或出现乱码等问题。本文将详细介绍一个专门用于处理中文字符串截取的...
【JavaScript源代码】基于网址URL中特殊字符转义编码是一个重要的概念,特别是在Web开发中,因为URL是连接互联网资源的...正确编码URL能确保数据安全无误地从客户端传递到服务器,避免因字符编码引发的错误和安全问题。
`iconv-lite` 是一个纯 JavaScript 实现的字符编码转换库,它不需要任何 C++ 扩展,因此可以在包括 Windows、Linux、Mac OS X 在内的各种平台上无缝工作。这个库主要设计用于解决 Node.js 应用程序在处理多语言或多...
encoding.js, 在JavaScript中,转换字符编码 encoding.js 在JavaScript中转换字符编码。README(Japanese)安装浏览器中的插件:[removed][removed]或者
JavaScript提供了`for...of`循环来遍历字符串,每个迭代返回一个Unicode编码的字符。 五、字符串方法扩展 1. `trim()`: 去除字符串两端的空白符。 2. `includes()`, `startsWith()`, `endsWith()`: 分别检查字符串...
总结来说,处理JavaScript中的中文Base64编码,关键在于正确地转换中文字符串到UTF-8字节数组,再进行Base64编码和解码。利用`TextEncoder` 和 `TextDecoder` API,或者Node.js的`Buffer`对象,可以有效地处理这个...
- **MDN Web Docs**:Mozilla的开发者网络提供了详细的JavaScript字符串处理和加密解密相关的文档。 - **在线教程**:网站如W3Schools、FreeCodeCamp等提供了丰富的JavaScript学习资源。 通过这个"javascript加...
// unicode: 返回一个字符的unicode编码 // 调用格式: ucode = unicode(char); // 参数: char:字符或字符串。为字符串时返回第一个字符的unicode编码 // 返回值: 整型。字符的unicode编码值 // 补充说明: 常用半角...
`encodeURIComponent()`用于对URL中的非字母数字字符进行编码,使其适合在URL中使用。而`decodeURIComponent()`则用于解码经过`encodeURIComponent()`编码的字符串。这两个函数通常用于处理URL中的查询字符串。 ...
UTF-8是一种可变长度的字符编码方式,专门用于Unicode编码,它允许用一到六个字节对字符进行编码,确保了与ASCII编码的兼容性。ASCII编码范围内的字符(0-127)在UTF-8中仍然只占用一个字节,而其他字符则根据其...
JavaScript 中对 URL 编码和解码涉及到六个函数:escape、encodeURI、encodeURIComponent、unescape、decodeURI 和 decodeURIComponent。这六个函数的使用场景和特点分别是: escape 函数:escape 函数用于将字符串...
为防止这种情况,我们需要对特殊字符进行转义,例如将`转义为`<`,`>`转义为`>`,`"`转义为`"`,`'`转义为`'`,`&`转义为`&`,`\`转义为`\`。 2. **Spring MVC的解决方案**: - Spring MVC...
- 不要在JavaScript字符串中直接使用特殊字符编码,应使用其对应的Unicode转义序列,如`\u00A9`表示版权符号。 综上所述,理解并熟练掌握HTML特殊字符编码对于编写高质量、兼容性强的HTML文档至关重要。通过正确的...
[escape] ISO Latin字符集对指定的字符串进行编码,不会被编码的字符[ @ * / +] [encodeURI] UTF-8字符集对指定的字符串进行编码 [encodeURIComponent] UTF-8字符集对指定的字符串进行编码,[支持更多的字符] 当源与...
3. `String.prototype.test()`方法的应用:`test()`是JavaScript字符串对象的一个方法,它使用正则表达式来测试字符串,如果正则表达式与字符串匹配,则返回`true`,否则返回`false`。在给出的代码片段中,`reg.test...
在互联网应用中,数据传输时常会遇到字符编码问题,特别是在中文环境下。GBK是GB2312编码的扩展,广泛用于简体中文环境。URL编码是将非ASCII字符转换为可安全包含在URL中的形式,而URL解码则是将这些编码还原为原始...
在本文中,我们将探讨如何使用 JavaScript 实现对中文字符串进行 utf-8 的 Base64 编码,以便与 Java 编码相同。我们将从基本概念开始,逐步讲解实现过程中的关键步骤。 首先,我们需要了解什么是 Base64 编码。...
在本示例中,我们讨论的是如何使用JavaScript对基于Base64编码的图片进行解码并显示在网页上。Base64是一种用于将二进制数据编码为ASCII字符串的编码方式,它在传输或存储非文本数据时非常有用,例如图片。 在HTML...