关于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 相关文章推荐
javascript offsetX与layerX区别
Mar 12 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
js实现文本框中焦点在最后位置
Mar 04 Javascript
javascript中DOM复选框选择用法实例
May 14 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
JavaScript实现滑动导航栏效果
Aug 30 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
es6中reduce的基本使用方法
Sep 10 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
php include,include_once,require,require_once
2008/09/05 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
php实现用户登陆简单实例
2017/04/04 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
python线程池的实现实例
2013/11/18 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
捐款倡议书范文
2014/02/02 职场文书
银行开业庆典方案
2014/02/06 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
民事辩护词范文
2015/05/21 职场文书
入党函调证明材料
2015/06/19 职场文书
mysql 获取时间方式
2022/03/20 MySQL
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android
vue的项目如何打包上线
2022/04/13 Vue.js