关于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 正则替换 replace(regExp, function)用法
May 22 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
Aug 17 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
简述jQuery ajax的执行顺序
Jan 05 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
Vue使用json-server进行后端数据模拟功能
Apr 17 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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实现中文字符截取防乱码方法汇总
2015/04/29 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
面试常见的js算法题
2017/03/23 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
python字符串排序方法
2014/08/29 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
python3 实现口罩抽签的功能
2020/03/11 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
学生上课迟到检讨书
2015/01/01 职场文书
地球上的星星观后感
2015/06/02 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
工作建议书范文
2019/07/08 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL