关于URL中的特殊符号使用介绍


Posted in Javascript onNovember 03, 2011

url即统一资源定位符,是通用资源标志符URI的一种。

由于有效的URI中不能包含某些字符,如空格等,如果不利用相应编码函数对URI进行编码(浏览器会对相应的URL进行处理),那么无法访问到有效的资源。

javascript的Global对象(javascript的内置对象)中有四个URI方法,分别是encodeURI和decodeURI,encodeURIComponent和decodeURIComponent,浏览器模型(BOM)提供了escape和unescape。在实际应用中,URI方法更可取,因为URI方法会对所有的Unicode符号编码,而BOM提供的escape和unescape只对ASCII符号进行编码。此外escape,unescape可以用来对数据进行加密和解密处理。

其中encodeURI和decodeURI是作相反的处理,encodeURIComponent和decodeURIComponent是做相反的处理,escape和unescape做相反的处理。

encodeURI是处理完整的URI,而encodeURIComponent处理URI片段,encodeURI编码除:!,#,¥,&,',(,),×,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z(共82个)以外的字符,而encodeURIComponent编码除:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z(共71个)以外的字符,escape编码除:*,+,-,.,/,@,_,0-9,a-z,A-Zs(共61个)以外的字符。

请求服务器(服务器是64位的操作系统)端以含有特殊字符(+)的为名字的文件,用encodeURI,decodeURIComponent或者escape都会提示相应的资源不存在,这是为什么呢?

js代码:

url ="http://192.168.6.135/nas135/MyDocument/1+2.txt" 
window.open(EncodeURI(url),"","","");

通过debug看到
EncodeURI(url)="http://192.168.6.135/nas135/MyDocument/1%2b2.txt",但是却打不开服务器端1+2.txt的文件,不知道是不是因为64机器的原因?请各位大侠帮忙解释一下?
Javascript 相关文章推荐
jquery tools系列 expose 学习
Sep 06 Javascript
用js调用迅雷下载代码的二种方法
Apr 15 Javascript
简单的js表单验证函数
Oct 28 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
js+html5实现侧滑页面效果
Jul 15 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
如何在JavaScript中谨慎使用代码注释
Jun 21 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 Javascript
8个JS的reduce使用实例和reduce操作方式
Oct 05 Javascript
javascript学习基础笔记之DOM对象操作
Nov 03 #Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 #Javascript
遍历jquery对象的代码分享
Nov 02 #Javascript
jquery 笔记 事件
Nov 02 #Javascript
分页栏的web标准实现
Nov 01 #Javascript
jquery键盘事件使用介绍
Nov 01 #Javascript
JS鼠标事件大全 推荐收藏
Nov 01 #Javascript
You might like
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
广告代码静态化js通用函数
2007/05/09 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
Node.js中DNS模块学习总结
2018/02/28 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
python os模块在系统管理中的应用
2020/06/22 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
小学生个人先进事迹材料
2014/05/08 职场文书
经典禁毒标语
2014/06/16 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
总结几个非常实用的Python库
2021/06/26 Python
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android