怎么通过JS实现转码与解码
这篇文章给大家分享的是有关怎么通过JS实现转码与解码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
十年的界首网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整界首建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“界首网站设计”,“界首网站推广”以来,每个客户项目都认真落实执行。
escape 和 unescape
escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。
采用unicode字符集对指定的字符串除0-255以外进行编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。
escape()函数用于js对字符串进行编码。
encodeURI 和 decodeURI
把URI字符串采用UTF-8编码格式转化成escape各式的字符串。
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURI()用于整个url编码
encodeURIComponent 和 decodeURIComponent
与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。
因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
encodeURIComponent() 用于参数的传递,参数包含特殊字符可能会造成间断。
总结
escape编码字符串
简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。
编码之后的效果是%XX或者%uXXXX这种形式。
其中 ASCII字母 数字 @*/+ 等字符不会被编码,其余的都会。
最关键的是,当需要对URL编码时,忘记这个方法,这个方法是针对字符串使用的,不适用于URL。
URL编码encodeURI和encodeURIComponent
对URL编码是常见的事,所以这两个方法应该是实际中要特别注意的。它们都是编码URL,唯一区别就是编码的字符范围,其中
encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&*()=:/,;?+'
encodeURIComponent方法不会对下列字符编码 ASCII字母 数字 ~!*()'
所以encodeURIComponent比encodeURI编码的范围更大。
实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。
如果只是编码字符串,不和URL有半毛钱关系,那么用escape。
如果你需要编码整个URL,然后需要使用这个URL,那么用encodeURI。
比如
encodeURI(http://www.cnblogs.com/some other thing);
编码结果:
http://www.cnblogs.com/some%20other%20thing
其中,空格被编码成了%20。但是如果用了encodeURIComponent,那么结果变为
http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2Fsome%20other%20thing
连 "/" 都被编码了,整个URL已经没法用了。
当需要编码URL中的参数的时候,那么encodeURIComponent是最好方法
var param = "http://www.cnblogs.com/"; //param为参数 param = encodeURIComponent(param); var url = "http://www.cnblogs.com?next=" + param; console.log(url) //http://www.cnblogs.com?next=http%3A%2F%2Fwww.cnblogs.com%2F
参数中的 "/" 可以编码,如果用encodeURI肯定要出问题,因为后面的/是需要编码的。
感谢各位的阅读!关于“怎么通过JS实现转码与解码”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
本文标题:怎么通过JS实现转码与解码
本文来源:http://cdiso.cn/article/pgdseo.html