URL中的特殊字符

博客介绍了URL无法显示特殊符号时需进行编码,给出了特殊字符对应的十六进制编码值,如空格为%20等。还介绍了Java中使用java.net.URLEncoder.encode和java.net.URLDecoder.decode进行URL编解码,JavaScript中使用escape和unescape函数。
   URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考)
URL中的特殊字符
特殊含义                                                            十六进制值
1.+ 表示空格(在 URL 中不能使用空格)          %20
2./ 分隔目录和子目录                                              %2F
3.? 分隔实际的 URL 和参数                                   %3F
4.% 指定特殊字符                                                    %25
5.# 表示书签                                                             %23
6.& URL 中指定的参数间的分隔符                        %26

java中URL 的编码和解码函数
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);
在javascript 中URL 的编码和解码函数
escape(String s)和unescape(String s) ;
网址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、付费专栏及课程。

余额充值