关于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实现页面跳转重定向的几种方式
May 29 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
jQuery实现可展开折叠的导航效果示例
Sep 12 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
May 02 Javascript
利用vscode调试编译后的js代码详解
May 14 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
Aug 23 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
java必学必会之static关键字
2015/12/03 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python高斯消除矩阵
2019/01/02 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
机械设计毕业生自荐信
2014/02/02 职场文书
加入学生会演讲稿
2014/04/24 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
python blinker 信号库
2022/05/04 Python