发布网友 发布时间:2024-08-11 13:31
共1个回答
热心网友 时间:2024-08-17 17:35
在Web开发中,当需要在浏览器地址栏通过问号(?)传递参数时,浏览器通常会用" "&" 来区分参数。然而,如果参数中包含像"&"这样的特殊字符,接收页面可能会遇到问题,如路径"/next.jsp?param1=hendhs89&furej ¶m2=sss"所示。这里的" & "会导致参数解析错误。
为了解决这个问题,可以使用Java中的`java.net.URLEncoder.encode()`方法对参数进行编码处理。这样,转义字符会转换为16进制形式。以下是几个常见的转义规则:
1. "+"在URL中代表空格,用作编码表示为"%2B"。
2. 空格可以用 "+" 或者编码 "%20" 来替换。
3. 分隔目录和子目录使用"%2F"。
4. 分隔URL主体与参数用"%3F"。
5. 特殊字符如百分号本身,编码为"%25"。
6. 书签标志用"%23"表示。
7. 参数之间用"%26"分隔。
8. 参数值的分隔符用"%3D"。
9. 强调或惊叹号在URL中分别用"%21"。
10. 上下划线用"%5E"。
11. 反引号(`)用"%60"。
12. 开放和闭合大括号分别用"%7B"和"%7D"。
13. 竖线用"%7C"。
14. 方括号内外分别用"%5B"和"%5D"。
15. 单引号在URL中用"%22"。
16. 方向性符号用"%3C"和"%3E"。
17. 转义字符本身用"%5C"。
通过遵循这些编码规则,可以在保持参数完整性的前提下,确保特殊字符在URL中的正确传递。
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。