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));
分享到:
相关推荐
如何对Url中的非法字符进行编码 Javascript中的escape,encodeURI和encodeURIComponent的区别 安全字符不同 兼容性不同 对Unicode字符的编码方式不同 适用场合不同 表单提交文档字符集会影响encodeURI吗?其他和Url...
iconv-lite - 纯javascript转换字符编码
纯js对字符串进行gb2312编码解码,如“中国”编码后成为:“%D6%D0%B9%FA”,很好用的
encoding.js, 在JavaScript中,转换字符编码 encoding.js 在JavaScript中转换字符编码。README(Japanese)安装浏览器中的插件:[removed][removed]或者
// unicode: 返回一个字符的unicode编码 // 调用格式: ucode = unicode(char); // 参数: char:字符或字符串。为字符串时返回第一个字符的unicode编码 // 返回值: 整型。字符的unicode编码值 // 补充说明: 常用半角...
[escape] ISO Latin字符集对指定的字符串进行编码,不会被编码的字符[ @ * / +] [encodeURI] UTF-8字符集对指定的字符串进行编码 [encodeURIComponent] UTF-8字符集对指定的字符串进行编码,[支持更多的字符] 当源与...
本文实例讲述了JavaScript中字符串与Unicode编码互相转换的实现方法。分享给大家供大家参考,具体如下: 这段代码演示了JavaScript中字符串与Unicode编码的转换: // 为了控制台的演示方便, 变量没有添加 var 定义 /...
js函数把base64编码还原成unicode的数据 然后直接调用URL编码函数对数据进行编码返回。就得到易语言支持的url编码unicode字节集的结果。有可能的话我建议精易模块也收录一下或者做一下这方便的URL编码。@龙卷风暴。
在用javascript对URL字符串进行编码中,虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤。 但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至...
提供一种Base64编码,并输出UTF-8格式的BASE64编码方式。本程序在微信小程序开发工具中已经测试通过。 Base64代码: [javascript] view plain copy print? (function(){ var BASE64_MAPPING = [ 'A','B','C','D',...
Spring MVC下彻底解决@ResponseBody转义html特殊字符问题,解决包括尖角号(),单引号('),双引号("),按位与(&),反斜杠(\)。
Java中的字符集编码入门(五)Java代码中的字符编码转换Part1.doc
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 javascript的简单编码机器和解码机器二合一
一、字符集 1)字符与字节(Character) 字符是各种文字和符号的总称,包括乱码;一个字符对应1~n个字节,...字符集大多对应一种编码方式(例如GBK对应GBK编码),但Unicode编码有多种,包括UTF-8、UTF-16、UTF-32和UT
本文实例讲述了JavaScript将字符串转换成字符编码列表的方法。分享给大家供大家参考。具体如下: JavaScript将字符串转换成字符编码列表,例如foo转换成 [112,111,111] 方法 1: JavaScript 1.6 Array.map('foo', ...
2. encodeURI()是javascript中真正用来对URL编码的函数。编码整个URL地址,但对特殊含义的符号”;/?:@&=+$,#”,也不进行编码。对应的解码函数是decodeURI()。 3. encodeURIComponent()能编码”;/?:@&=+$,#”这些...
正则检查当前字符串中的字是否包含在GBK字库中,可获取非GBK字符。
JavaScript中的字符串也像Python那样支持反斜杠的转移,并且字符集方面默认为Unicode,下面就来详细解析JavaScript中的字符串类型与字符编码支持
此模块支持日语中常用的编码: Shift_JIS(CP932),ISO-2022-JP(-1),EUC-JP,UTF8,UNICODE(UCS2)转换。 纯Javascript,无需编译。 比快得多。 安装 $ npm install jconv 用法 例如,简单地从EUC-JP转换...