- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent .
下面简单介绍一下它们的区别:
1 escape()函数 。
定义和用法 。
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串.
语法 。
escape(string) 。
参数 描述 。
string 必需。要被转义或编码的字符串.
返回值 。
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列.
说明 。
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换.
2 encodeURI()函数 。
定义和用法 。
encodeURI() 函数可把字符串作为 URI 进行编码.
语法 。
encodeURI(URIstring) 。
参数 描述 。
URIstring 必需。一个字符串,含有 URI 或其他要编码的文本.
返回值 。
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换.
说明 。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) .
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# 。
3 encodeURIComponent() 函数 。
定义和用法 。
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码.
语法 。
encodeURIComponent(URIstring) 。
参数 描述 。
URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本.
返回值 。
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换.
说明 。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) .
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的.
提示和注释 。
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号.
4 总结:
通过对三个函数的分析,我们可以知道:escape()除了 ASCII字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI()用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL.
5 示例:
1 escape() 。
1
2
3
4
|
<script type=
"text/javascript"
>
document.write(escape(
"http://www.w3school.com.cn/"
) +
"<br />"
)
document.write(escape(
"?!=()#%&"
))
</script>
|
输出:
1
2
3
|
http%3A//www.w3school.com.cn
%3F%21%3D%28%29%23%25%26
|
2 encodeURI() 。
1
2
3
4
5
|
<script type=
"text/javascript"
>
document.write(encodeURI(
"http://www.w3school.com.cn/"
)+
"<br />"
)
document.write(encodeURI(
"http://www.w3school.com.cn/My first/"
))
document.write(encodeURI(
",/?:@&=+$#"
))
</script>
|
输出:
1
2
3
4
5
|
http://www.w3school.com.cn/
http://www.w3school.com.cn/My%20first/
,/?:@&=+$#
|
对整个URL进行编码,而URL的特定标识符不会被转码.
3 encodeURIComponent() 。
例1:
1
2
3
4
5
6
7
|
<script type=
"text/javascript"
>
document.write(encodeURIComponent(
"http://www.w3school.com.cn/"
))
document.write(
"<br />"
)
document.write(encodeURIComponent(
"http://www.w3school.com.cn/p 1/"
))
document.write(
"<br />"
)
document.write(encodeURIComponent(
",/?:@&=+$#"
))
</script>
|
输出:
1
2
3
4
5
|
http%3A%2F%2Fwww.w3school.com.cn
http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
%2C%2F%3F%3A%40%26%3D%2B%24%23
|
例2:
1
2
|
<script language=
"javascript"
>document.write(
'
<a href="http://passport.baidu.com/?logout&aid=7&u='
+encodeURIComponent(" rel=
"external nofollow"
http://cang.baidu.com/bruce42
")+'"
>退出</a>');</script>
|
对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转.
最后此篇关于深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例的文章就讲到这里了,如果你想了解更多关于深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
一、escape escape是对字符串进行编码,使得可以在所有的电脑上可读,但是encodeURI和encodeURIComponent是对URL进行编码的。escape和后两者几乎没关系。 esc
我正在编写一个集成在两个 3rd 方库之间的组件。 从第一个库中获取 URL,并将其传递给第二个库。 我得到的 URL 格式为: https://xxxxx.s3.amazonaws.com/xxxx
我的 cookie 值包含圆括号“例如:demo (1)”当我尝试使用 encodeURI 进行编码时,圆括号 ( 未编码为 %28 ,对圆括号等特殊字符进行编码的替代方法是什么 最佳答案 要将 ur
我使用 encodeURI() 对 php 请求 url 进行编码,它在 Firefox 和 Chrome 中工作得很好,但在 IE/Edge 中却不行。 实际网址是:http://localhost
如果您使用 javascript 的 encodeURI() 方法对某些内容进行编码,您如何在 PHP 中获取解码后的字符串? 我有字符串 name= "salman mahmood",我正在通过 P
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正尝试在 js 代码下加载背景图片,如下所述: $('.main-banner').css('background-image', "url("+encodeURI(element.image)+"
有没有办法在 Javascript 的 encodeURI() 或 encodeURIComponent() 中指定字符集?例如: encodeURIComponent("例子", "UTF-8")
我创建了一个网络应用程序来清理 CSV/TSV 数据。该应用程序允许我上传 CSV 文件、读取它、修复数据,然后下载包含正确数据的新 CSV 文件。我遇到的一个挑战是下载超过 2500 行的文件。浏览
javascript 的 encodeURI 函数是否有任何有效用途? 据我所知,当您尝试发出 HTTP 请求时,您应该: 一个完整的 URI 您想放入 URI 中的一些片段,可以是 unicode
PHP 中是否有一些 encodeURI() 函数不编码:~!@#$&*()=:/,;?+'? 最佳答案 我现在在用这个 function encodeURI($url) { // http:
编码查询字符串以发送到 Web 服务器时 - 何时使用 escape() 以及何时使用 encodeURI() 或 encodeURIComponent (): 使用转义: escape("% +&=
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape, decodeURI, de
我正在根据用户查询生成搜索输出并生成这样的搜索结果页面 location.href = root_url + "SearchCenter/Pages/internal.aspx" + "?q=" +
我有一个页面通过 ExtJS 在 iframe 中加载其他页面: alert(UNID); // returns ...AAA== ... autoEl:{ tag:"ifr
我有一个这样的 URI: http://client.dev/dap/module/hdfs-web/api/v1.0/clusters/Cluster%201%20-%20CDH4?operatio
我正在尝试使用 http.get 调用远程 URL。我将搜索字符串附加到基本 URL。此搜索字符串应经过 URL 编码。但是我得到这个错误: Cannot find name 'encodeUri'
在 JavaScript 中,这些有什么区别? 转义()/unescape() encodeuri()/decodeuri() encodeURIComponent()/decodeURICompon
在一个小型 asp.net web 客户端中,我有以下 Ajax 调用。 $.ajax({ type: "GET", url: "Search.aspx?action=GetDocum
什么是 Powershell 中的 Javascripts encodeURI()/encodURIComponent()? 我正在对 URL 进行编码(其中需要一些 %20),但我讨厌手动进行编码。
我是一名优秀的程序员,十分优秀!