URL中的特殊字符

本文介绍了URL中特殊字符的编码规则,包括空格、分隔符等,并解释了如何使用ASCII码进行转义。

URL中的特殊字符是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如:

 符号 

 特殊含义 

 十六进制值

 + 

 表示空格(在URL中不能使用空格)

 %20 

 /

 分隔目录和子目录 

 %2F 

 ? 

 分隔实际的 URL 和参数

 %3F 

 %

 指定特殊字符 

 %25 

 #

 表示书签

 %23

 &

 URL中指定的参数间的分隔符  

 %26

=

参数赋值符号

%3D


转自:http://blog.chinaunix.net/uid-84860-id-2031074.html

网址URL特殊字符转义编码的替换方法有多种,以下为详细介绍: ### 手动替换 可依据特殊字符与其对应的URL编码值进行手动替换。例如,将空格替换为`%20`,`"`替换为`%22`等。以下是部分特殊字符及其对应的URL编码值: | 字符 | URL编码值 | | --- | --- | | 空格 | %20 | | " | %22 | | # | %23 | | % | %25 | | & | %26 | | ( | %28 | | ) | %29 | | + | %2B | | , | %2C | | / | %2F | | : | %3A | | ; | %3B | | < | %3C | | = | %3D | | > | %3E | | ? | %3F | | @ | %40 | | \ | %5C | | \| | %7C | ### 使用JavaScript的`encodeURI()`函数 在JavaScript里,`encodeURI()`函数可对整个URI进行转义,会把特殊字符替换成对应的编码值。示例代码如下: ```javascript const uri = "select num+1 from dual"; const encodedUri = encodeURI(uri); console.log(encodedUri); ``` ### Java中的替换方法 在Java里,可借助`escape()`函数并结合`replace()`方法实现特殊字符的替换。示例代码如下: ```java public class URLEscapeExample { public static String escapeURL(String sStr) { return sStr.replace("+", "%2B").replace("\"", "%22").replace("'", "%27").replace("/", "%2F"); } public static void main(String[] args) { String url = "select num+1 from dual"; String escapedUrl = escapeURL(url); System.out.println(escapedUrl); } } ``` ### 遵循基本编码规则替换 URL中一些字符有特殊含义,若要在URL中使用这些特殊字符,需将其替换成相应的十六进制值: - 空格换成`+`(也可换成`%20`) - 正斜杠`/`替换为`%2F` - 问号`?`替换为`%3F` - 百分号`%`替换为`%25` - `#`号替换为`%23` - `&`号替换为`%26`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值