关于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 相关文章推荐
js 方法实现返回多个数据的代码
Apr 30 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
关于Javascript与iframe的那些事儿
Jul 04 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
微信小程序带动画弹窗组件使用方法详解
Nov 27 Javascript
Vue动态路由缓存不相互影响的解决办法
Feb 19 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
Jul 28 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 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
php防注入及开发安全详细解析
2013/08/09 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
python re.match()用法相关示例
2021/01/27 Python
日本航空官方网站:JAL
2019/06/19 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
数据库的约束含义
2012/09/09 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
初三家长会邀请函
2014/01/18 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
详解nginx进程锁的实现
2021/06/14 Servers
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript