关于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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
js本身的局限性 别让javascript做太多事
Mar 23 Javascript
js 编程笔记 无名函数
Jun 28 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
Sep 22 Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
JS中的JSON对象的定义和取值实现代码
May 09 Javascript
uni-app之APP和小程序微信授权方法
May 09 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 Javascript
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
js实现登录时记住密码的方法分析
Apr 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
PHP 程序授权验证开发思路
2009/07/09 PHP
劣质的PHP代码简化
2010/02/08 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
Python中异常重试的解决方案详解
2017/05/05 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
Java程序员常见面试题
2015/07/16 面试题
兴趣小组活动总结
2014/05/05 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书