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课程设计——计算数学表达式的程序(201521123051 谢庆圆)
计算数学表达式的程序(201521123051 谢庆圆) 1.团队课程设计博客链接 团队课程设计博客链接 2.个人负责模块或任务说明 1.计算数字表达式中操作按钮的实现(右容器) 2.. 注册监听器以 ...
- Java课程设计 学生基本信息管理个人博客
学生基本信息管理系统个人博客 团队课程设计链接 http://www.cnblogs.com/ll321/p/7067598.html 个人负责模块 负责部分界面设计,处理代码: 处理部分数据库数据. ...
- idea使用转载【别人的专栏】
维C果糖
- JVM锁机制之synchronized
概述: synchronized是java用于处理多线程同步的一个关键字,用于标记一个方法/代码块,使之成为同步方法/同步块. 用synchronized可以避免多线程处理时的竞态条件问题. 相关概念 ...
- Android 之http编程
HTTP-GET和HTTP-POST定义: 都是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义. 每个HTTP-GET和HTTP-POST都由一系列HTTP请求 ...
- 【轉】JS,Jquery获取各种屏幕的宽度和高度
Javascript: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.b ...
- 初识oracle存储过程
参见:http://www.cnblogs.com/linjiqin/archive/2011/04/16/2018411.html 1.存储过程的语法结构: CREATE OR REPLACE PR ...
- JavaScript new Boolean(false) 其实是true
Boolean类型是JavaScript原始数据类型(primitive type)之一:常用来表示 真或假,是或否:这个类型只有两个值:保留字true和false 一般用于控制语句:如下 if(Bo ...
- Application->ProcessMessages();
Application.ProcessMessages的用法意义 在循环中加Application.ProcessMessages是可以防止其他控件没响应,举个例子容易明白:假如你的窗体上有两个按 ...
- Hbase 技术细节笔记(上)
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张秀云 前言 最近在跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hbase的 ...