URL中的特殊字符

本文介绍了在URL中如何正确地使用特殊字符编码。由于某些符号在URL中无法直接传递,因此需要将其转换为对应的ASCII十六进制编码形式。文章列举了常见的URL特殊字符及其编码,并通过实例说明了如何在实际应用中进行转码。
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。
下表中列出了一些URL特殊符号及编码
   十六进制值
1.+ URL 中+号表示空格%2B
2.空格URL中的空格可以用+号或者编码%20
3./ 分隔目录和子目录%2F
4.? 分隔实际的 URL 和参数%3F
5.%指定特殊字符%25
6.#表示书签%23
7.&URL 中指定的参数间的分隔符%26
8.=URL 中指定参数的值%3D

例:要传递字符串“this%is#te=st&o k?+/”作为参数t传给te.jsp,则URL可以是:
te.jsp?t=this%25is%23te%3Dst%26o%20k%3F%2B%2F 或者
te.jsp?t=this%25is%23te%3Dst%26o+k%3F%2B%2F (空格可以用%20或+代替)

网址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`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值