URL中的转义字符

当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器可以识别的字符。
如果要在URL中传递特殊符号的原本意义,要对他们进行编码。编码的格式为:%加字符的ASCII码(16进制),例如空格的编码值是"%20"。
URL中特殊符号的用途及普通意义的编码
|
+ |
URL 中+号表示空格 |
%2B |
|
空格 |
URL中的空格可以用+号或者编码 |
%20 |
|
/ |
分隔目录和子目录 |
%2F |
|
? |
分隔实际的URL和参数 |
%3F |
|
% |
指定特殊字符 |
%25 |
|
# |
表示书签 |
%23 |
|
& |
URL 中指定的参数间的分隔符 |
%26 |
|
= |
URL 中指定参数的值 |
%3D |
HTML中的转义字符
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,“<”和“>”符号用来表示HTML标签,不能当作普通的符号来使用。如果要在HTML文档中使用这些特殊符号原有的意义,就需要定义对应的转义字符串。当浏览器遇到这类转义字符时就会解释为真实的字符而不是特殊用途。另外有些字符在ASCII字符集中没有文字代号,只能用转义字符串来表示,如回车换行符,退格键等。
|
字符 |
十进制 |
转义字符 |
|
" |
" |
" |
|
& |
& |
& |
|
< |
< |
< |
|
> |
> |
> |
|
不断开空格(non-breaking space) |
  |
|
JavaScript中的转义
JavaScript 中有些字符有特殊用途,如果字符串中想使用这些字符原来的含义,需要使用反斜杠对这些特殊符号进行转义。
正则中也有需要转义的字符:* . ? + $ ^ [ ] ( ) { } | \ /,也是通过\反斜杠进行转义。但是中括号里并不是元字符,不需要转义。
在js中字符串形式的正则表达式匹配一个反斜杠要用四个反斜杠'\\\\', 第一个斜杠是js字符串的转义符,第二个斜杠是斜杠本身,第三个斜杠是js字符串的转义符,第四个斜杠是斜杠本身。将第二、四个反斜杠转为正则中的斜杠后,前面一个为正则中的转义符,将后者变为普通符号。字符串形式的正则表达式里的斜杠也是特殊符号,若要当普通符号使用,也需要转义,用“\\”标示。因为js中反斜扛为特殊符号(转义字符),js字符串里面表示斜杠需要一次转义:“\\”。
在比如:字面量形式/\{.*\}/---->字符串形式'\\{.*\\}'。因为{号为正则中的特殊符号,需要加\转义,而字符串中的\又是js中的特殊符号,需要再加一个\进行转义。
注意正则的字面量形式只需要对正则中的特殊符号转义,不需要对js的特殊符号转义。
|
代码 |
输出的普通字符 |
|
\' |
单引号 |
|
\" |
双引号 |
|
\& |
和号 |
|
\\ |
反斜杠 |
|
\n |
换行符 |
|
\r |
回车符 |
|
\t |
制表符 |
|
\b |
退格符 |
|
\f |
换页符 |
js中对字符串进行编码的方法
1.encodeURI()把字符串作为 URI整体进行编码,所以URI组件中的特殊分隔符号(;/:@&=+$?#),encodeURI() 函数不会进行转义。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )
encodeURI("http://www.w3school.com.cn")
输出http://www.w3school.com.cn
2.encodeURIComponent()把字符串作为 URI 组件的一部分(如path/query/fragment等)进行编码,所以用于分隔 URI 各个部分的特殊分隔符号(;/?:@&=+$,#)也会被转义。返回值中某些字符将被十六进制的转义序列替换。该方法也不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )
encodeURIComponent("http://www.w3school.com.cn")
输出http%3A%2F%2Fwww.w3school.com.cn
3.decodeURI()/decodeURIComponent()解码URI中被转义的字符
decodeURIComponent(%E4%BD%A0%E5%A5%BDjavascript);
输出你好javascript
4.escape()用于对字符串进行编码,并返回编码字符串。但目前已不推荐使用该函数对URI进行编码。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js转义字符
# uri转义
# JavaScript使用escape()、encodeURI()和decodeURI()实现URI编
# js中编码函数:escape
# encodeURI与encodeURIComponent详解
# js中字符串编码函数escape()、encodeURI()、encodeURIComponent(
# 从此不再惧怕URI编码 JavaScript及C# URI编码详解
# js编码之encodeURIComponent使用介绍(asp
# php)
# Javascript下的urlencode编码解码方法附decodeURIComponent
# JS中三种URI编码方式对比分析
# 特殊符号
# 会对
# 也不
# 要对
# 要在
# 也有
# 也会
# 第一个
# 又是
# 换行符
# 不需要
# 可以用
# 只需
# 推荐使用
# 这类
# 第二个
# 要用
# 将被
# 正则表达式
# 时就
相关文章:
如何快速搭建安全的FTP站点?
如何在宝塔面板中修改默认建站目录?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
C#如何使用XPathNavigator高效查询XML
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
浅析上传头像示例及其注意事项
安云自助建站系统如何快速提升SEO排名?
如何在建站宝盒中设置产品搜索功能?
如何通过虚拟主机快速搭建个人网站?
建站上市公司网站建设方案与SEO优化服务定制指南
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
西安大型网站制作公司,西安招聘网站最好的是哪个?
开源网站制作软件,开源网站什么意思?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何通过万网虚拟主机快速搭建网站?
Python多线程使用规范_线程安全解析【教程】
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建站之星如何实现PC+手机+微信网站五合一建站?
如何通过主机屋免费建站教程十分钟搭建网站?
淘宝制作网站有哪些,淘宝网官网主页?
如何登录建站主机?访问步骤全解析
如何快速重置建站主机并恢复默认配置?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
网站app免费制作软件,能免费看各大网站视频的手机app?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何在阿里云服务器自主搭建网站?
宝塔面板如何快速创建新站点?
宝塔新建站点报错如何解决?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何在Golang中引入测试模块_Golang测试包导入与使用实践
简单实现Android验证码
建站主机助手选型指南:2025年热门推荐与高效部署技巧
金*站制作公司有哪些,金华教育集团官网?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
大同网页,大同瑞慈医院官网?
如何在IIS中新建站点并配置端口与IP地址?
利用JavaScript实现拖拽改变元素大小
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
实例解析Array和String方法
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
制作网页的网站有哪些,电脑上怎么做网页?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
C#如何在一个XML文件中查找并替换文本内容
如何在VPS电脑上快速搭建网站?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
*请认真填写需求信息,我们会在24小时内与您取得联系。