escape、encodeURI和encodeURIComponent的区别及使用
编码
javascript中的编码函数有三种
escape(string)
encodeURI(string)
encodeURIComponent(string)
解码
相应的解码函数也有以下三种
unescape(string)
unencodeURI(string)
unencodeURIComponent(string)
以上三种编码函数都是将指定的字符串按照各自的方式转变为浏览器或脚本可识别的形式,常见于对汉字进行操作,避免出现乱码的情况
用法及区别
escape(string)
- 将字符串
string
转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下标点符号进行编码:-_./
- 例如
escape('汉字 你123abcABC'); //"%u6C49%u5B57%20%u4F60123abcABC"
escape('-_./'); //"-_./"
escape('"'); //"%22"
escape(":"); //"%3A"
- 说明
从以上结果中表明:escape(string)
除字母、数字以及一些特殊字符(-_./
)外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为%u
开头的四位十六进制数(%u6C49
),英文标点符号被转换为%
开头的两位十六进制(%20
)
- 将字符串
encodeURI(string)
- 将字符串
string
转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下符号进行编码:-_.!~*'/();?:@&=+$,#
- 例如
encodeURI('汉'); //"%E6%B1%89"
encodeURI('汉字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC"
encodeURI("-_.!~*'/();?:@&=+$,#"); //"-_.!~*'/();?:@&=+$,#"
encodeURI('"'); //"%22"
- 说明
从以上结果中表明:encodeURI(string)
除字母、数字以及一些特殊字符(-_.!~*'/();?:@&=+$,#
)外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为三组%
开头的两位十六进制数(%E6%B1%89
),英文标点符号被转换为%
开头的两位十六进制(%20
)
- 将字符串
encodeURIComponent(string)
- 将字符串
string
转变为十六进制的转义序列,但不会对ASCII字符和数字进行编码,也不会对以下符号进行编码:-_.!~*'()
- 例如
encodeURIComponent('汉'); //"%E6%B1%89"
encodeURIComponent('汉字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC"
encodeURIComponent("-_.!~*'()"); //"-_.!~*'()"
encodeURIComponent('"'); //"%22"
- 说明
从以上结果中表明:encodeURIComponent(string)
除字母、数字以及一些特殊字符(-_.!~*'()
)外,都会对其进行编码,区别在于,汉字和中文标点符号被转换为三组%
开头的两位十六进制数(%E6%B1%89
),英文标点符号被转换为%
开头的两位十六进制(%20
)
- 将字符串
总结
- 综上
escape(string)
不能用于对url进行编码,多用于返回字符的Unicode
编码encodeURI(string)
可以对整个url进行编码encodeURIComponent(string)
不能应用于整个url编码,多用于对地址后的参数值进行编码
escape、encodeURI和encodeURIComponent的区别及使用的更多相关文章
- JS中 escape, encodeURI 和 encodeURIComponent的区别
为避免Url字符串在传递过程中的乱码,我们一般需要对字符串进行处理. 在Javascript中实现此功能的全局对象有3个,分别是:escape(), encodeURI() 和 encodeURI ...
- escape encodeURI和encodeURIComponent的区别
escape(与之对应->unescape) escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读.编码之后的效果是%XX或者%uXXXX这种形式 ...
- escape(), encodeURI()和encodeURIComponent()(转)
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学 ...
- encodeURI与encodeURIComponent的区别
webservice输出时选择的格式与Content-Type报文头有关 encodeURI与encodeURIComponent的区别:后者会将URI进行编码(包括"://")
- Javascript中escape(), encodeURI()和encodeURIComponent()之精析与比较
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学者, ...
- 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- escape、encodeURI和encodeURIComponent的区别
1.简单解释 简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读. 编码之后的效果是%XX或者%uXXXX这种形式. 其中 ASCII字母. ...
- Javascript中escape()、encodeURI()、encodeURIComponent()的区别
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- js 中escape,encodeURI,encodeURIComponent的区别
escape:方法不能能够用来对统一资源(URI)进行编码,对其编码应使用encodeURI和encodeURIComponent encodeURI:encodeURI ()方法返回一个编码的 UR ...
随机推荐
- 《JAVA程序设计》第9周学习总结
1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现 ...
- Java第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- linux segmentation fault记录
文章将记录linux学习使用中出现的各种segmentation fault,持续更新,希望对看到人有所帮助 1. linux pcap segmentation fault -- 2013.11.2 ...
- 通过Excel认识POI
1.POI是什么 Apache POI - the Java API for Microsoft Documents,顾名思义,Apache的三方包,用来操作微软office文档的,多数时候用来操作e ...
- Windows下chm转换为html的超简单方法
摘要:通过调用Windows命令,将chm 文件转换为html 文件 概述:很多程序员朋友都会遇到这样的问题,看一个离线版的帮助文档(chm文件),总会产生一个索引文件(该文件的chw文件), 而且有 ...
- 【java】java反射初探 ——“当类也照起镜子”
反射的作用 开门见山地说说反射的作用 1.为我们提供了全面的分析类信息的能力 2.动态加载类 我理解的“反射”的意义 (仅个人理解) 我理解的java反射机制就是: 提供一套完善而强大的API ...
- Piggy Back_KEY
Piggy Back (piggyback.pas/c/cpp) [问题描述] Bessie 和她的姐姐 Elsie 在不同的田块吃草,晚上她们都返回牛棚休息.作为聪明的奶牛,她们想设计一个方案使得步 ...
- 程序员的自我修养九Windows下的动态链接
9.1 DLL简介 DLL即动态链接库的缩写,它相对于Linux下的共享对象. Windows下的DLL文件和EXE文件实际上是一个概念,它们都是有PE格式的二进制文件. 微软希望通过DLL机制加强软 ...
- Linux - 设置/取消代理
export http_proxy=118.210.42.251:44367 或: export https_proxy=118.210.42.251:44367 要取消该设置: unset ht ...
- shell查找指定时间段内的文件
#!/bin/bash#20170905 输入参数格式echo "显示"$1"的备份文件"date_0=$1date_1=`expr $date_0 + 1`d ...