关于URL中的特殊符号使用介绍

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机器的原因?请各位大侠帮忙解释一下?

(0)

相关推荐

  • 简单实例处理url特殊符号&处理(2种方法)

    我遇到的问题是:url里的参数内容包含&符合,我有两种方法解决 其一方法是:在页面用JS转码,例子如下(前端处理) 复制代码 代码如下: <a href="#" onclick="test('${group.type}','${group.cn }')">${group.cn })</a> <script language="javascript"> function test(a,b){ alert(

  • url参数中有+、空格、=、%、&、#等特殊符号的问题解决

    url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好?解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它字符替代吧,或用全角的. +    URL 中+号表示空格                                 %2B   空格 URL中的空格可以用+号或者编码           %20 /   分隔目录和子目录                                     %2F

  • url中的特殊符号有什么含义(推荐)

    一.# #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如,http://www.example.com/index.html#print就代表网页index.html的print位置.浏览器读取这个URL后,会自动将print位置滚动至可视区域. 为网页位置指定标识符,有两个方法.一是使用锚点,比如<a name="print"></a>,二是使用id属性,比如<div id="print">. 二.HTTP请求不包

  • php获取URL中带#号等特殊符号参数的解决方法

    例如下面的PHP代码: 复制代码 代码如下: <?php echo $_GET['key']; ?> 当url为http://test.com/c.php?key=999时,正常输出:999 当url为http://test.com/c.php?key=9#888时,只能输出:9 而我想要获得的是9#888,那要怎么办呢?只能在把9#888传递给key的这个环节想办法. 我是用JS中的escape函数编码后传递解决了这个问题,需要的朋友可以参考一下. 复制代码 代码如下: <input

  • 关于URL中的特殊符号使用介绍

    url即统一资源定位符,是通用资源标志符URI的一种. 由于有效的URI中不能包含某些字符,如空格等,如果不利用相应编码函数对URI进行编码(浏览器会对相应的URL进行处理),那么无法访问到有效的资源. javascript的Global对象(javascript的内置对象)中有四个URI方法,分别是encodeURI和decodeURI,encodeURIComponent和decodeURIComponent,浏览器模型(BOM)提供了escape和unescape.在实际应用中,URI方法

  • URL中井号的作用介绍

    URL中的井号(#)是比较常见的,它并不影响网址的指向,而是有众多功能和特点的.下面就为大家介绍一些有关井号的故事. 1.页面中的某一个位置可以用井号在URL中指定 井号作为比较长出现在URL的一种符号,通常也会代表这个页面中的某一个位置,比如:http://aoshu.juren.com/chzt/xiaoxueshijuan/index.html#nn1,此URL表示在这个页面中nn1的位置.浏览器读取这个URL后,会自动将nn1位置滚动至可视区域. 设置描点只需在相应位置添加,然后在按钮的

  • vue项目如何去掉URL中#符号的方法

    目录 前言 正常解决步骤 1. 设置路由mode 2. 配置服务端nginx 可能碰到的问题 1. 静态资源Uncaught SyntaxError: Unexpected token < 问题 2. api接口请求404问题 3. 开发环境(npm run dev启动)刷新404的问题 4. 前端路由与服务端接口路由冲突问题 结尾 前言 最近,同事跟我说,项目的访问路径里的/#/挺不美观的,就下手尝试去掉,本以为就是一句代码搞定的事情,结果遇到不少问题. 现在把我遇到的情况记录下来,做个存档,

  • Mabitis中的#与$符号区别及用法介绍

    一.介绍 mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = "Jack"; 上述 sql 中,我们希望 name 后的参数 "Jack" 是动态可变的,即不同的时刻根据不同的姓名来查询用户.在 Mapper.xml文件中使用如下的 sql 可以实现动态传递参数 name: select * from u

  • 解决Python 爬虫URL中存在中文或特殊符号无法请求的问题

    这种问题,初学者应该都会遇到,分享给大家做个参考! from urllib.parse import quote import string #解决请求路径中含义中文或特殊字符 url_ = quote(new_url, safe=string.printable); 以上这篇解决Python 爬虫URL中存在中文或特殊符号无法请求的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • C语言中的强符号和弱符号介绍

    之前在extern "C" 用法详解中已经提到过符号的概念,它是编译器对变量和函数的一种标记,编译器对C和C++代码在生产符号时规则也是不一样的,符号除了本身名字的区别外,还有强符号和弱符号之分 我们先看一段简单的代码 复制代码 代码如下: /* test.c */  void hello();  int main()  {      hello();      return 0;  } 很显然,这段代码是没法链接通过的,它会报错undefined reference to hello

  • URL中“#” “?” &“”号的作用浅析

    1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username 这是主流网站第一次将"#"大规模用于重要URL中.这表明井号(Hash)的作用正在被重新认识.本文根据HttpWatch的文章,整理与井号有关的所有重要知识点. 一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置

  • SpringBoot处理请求参数中包含特殊符号

    今天写代码遇到了一个问题,请求参数是个路径"D:/ExcelFile",用postman测试时遇到的下图中的报错 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986   at org.apache.coyote.http11.Http11InputBuffer

  • Python正则表达式中的量词符号与组问题小结

    正则表达式中的符号 例子 | 是或的关系,只要存在就会被捕获 匹配到的数据只按字符串顺序返回,而不是按照匹配规则返回 In [18]: data = 'insane@loafer.com' In [19]: print(re.findall('insane|com|loafer', data)) ['insane', 'loafer', 'com'] ^ 等同于 \A In [20]: print(re.findall('^insane',data)) ['insane'] In [21]: p

随机推荐