1. encodeURIComponent(url) 函数可把字符串作为 URI 组件进行编码。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
eg:
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
输出:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
document.write(encodeURIComponent(",/?:@&=+$#"))
输出:%2C%2F%3F%3A%40%26%3D%2B%24%23
2. encodeURI(url) 函数可把字符串作为 URI 进行编码。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
eg:
document.write(encodeURI("http://www.w3school.com.cn/My first/")
)
输出:http://www.w3school.com.cn/My%20first/
document.write(encodeURI(",/?:@&=+$#")
)
输出:,/?:@&=+$#
3. decodeURIComponent(url) 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
eg:
var test1="http://www.w3school.com.cn/My first/"
document.write(encodeURIComponent(test1)
+ "<br />")
document.write(decodeURIComponent(test1)
)
输出:http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2F
http://www.w3school.com.cn/My first/
4. decodeURI(url) 函数可对 encodeURI() 函数编码过的 URI 进行解码。
eg:
var test1="http://www.w3school.com.cn/My first/"
document.write(encodeURI(test1)
+ "<br />")
document.write(decodeURI(test1)
)
输出:http://www.w3school.com.cn/My%20first/
http://www.w3school.com.cn/My first/
5. escape() 函数可对字符串进行编码
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。
可以使用 unescape() 对 escape() 编码的字符串进行解码。
ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
eg:
document.write(escape("Visit W3School!") + "<br />")
document.write(escape("?!=()#%&"))
输出:Visit%20W3School%21
%3F%21%3D%28%29%23%25%26
6. unescape() 函数可对通过 escape() 编码的字符串进行解码。
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
eg:
var test1="Visit W3School!"
test1=escape(test1)
document.write (test1 + "<br />")
test1=unescape(test1)
document.write(test1 + "<br />")
输出:Visit%20W3School%21
Visit W3School!
网上看到不用后两个编码解码方法可能是 escape() 只是为 ASCII字符 做转换工作,转换成的 %unnnn 这样的码,如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn 这的码才可以
以上内容参考http://www.w3school.com.cn/ 和网上记录下
分享到:
相关推荐
JavaScript实现编码解码! 值得下载看看!资源免费,大家分享!!
javascript版本的 base64解码和编码函数。
js实现opus的编码和解码的完整代码,其中解码可直接运行html,编码示例需要在机器上启动apache服务。 opus编码:可实现wav读取后,编码为opus,且可保存为opus的文件。 opus解码:打开opus的文件后,可解码出pcm...
Delphi进行Base64编码后,如果使用javascript解码,会出现如下问题: 1. 汉字乱码 2. 空格变成 + 号 本资源演示Delphi代码,实现javascript能正确进行Base64解码,不出现上述2个问题。 解决思路:进行Base64前先...
Javascript Base64编码解码
base62.js, node.js的javascript Base62编码/解码器 Base62.js JavaScript Base62编码/解码器什么是Base62编码?Base62编码将数字转换为ASCII字符串( 0 -9,一个z 和一个z ),反之亦然,这通常会导致比较短的字符串...
Java以及JavaScript对汉字编码的策略
NULL 博文链接:https://fp-moon.iteye.com/blog/838461
摘要:脚本资源,Ajax/JavaScript,Js编码,解码 JavaScript版GBK编码、解码函数演示,在你选择使用GBK编码、用POST或GET方式发送信息到服务器的时候,注意过浏览器发送的编码是什么样的吗?碰到过编码错误的情况吗?此...
js-htmlencode是一款可以实现HTML编码和解码的JavaScript工具类。通过该JS工具类,你可以将HTML标签转换为对应的HTML实体,也能将HTML实体转换回HTML标签,非常实用。
前端实现Base64对文本和图片的编码,后端用Java Servlet作为接口实现编码的解码.
javascript中将文字转换成标点的编码
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponen
主要介绍了Quoted-printable 编码介绍、Quoted-printable编码解码转换方法,需要的朋友可以参考下
Javascript中实现unicode编码与解码功能,两个小测试函数。
js-htmlencode是一款可以实现HTML编码和解码的JavaScript工具类。通过该JS工具类,你可以将HTML标签转换为对应的HTML实体,也能将HTML实体转换回HTML标签,非常实用。
本文主要介绍了JavaScript中的编码和解码函数。具有很好的参考价值,下面跟着小编一起来看下吧
纯js对字符串进行gb2312编码解码,如“中国”编码后成为:“%D6%D0%B9%FA”,很好用的
纯 Javascript 脚本实现 GBK URL 编码和解码
NULL 博文链接:https://gembler.iteye.com/blog/314140