代码示例
java复制代码public static String generateContent(String content) {
// 将 content 进行 url 编码
String ans;
try {
ans = URLEncoder.encode(content, "UTF-8");
} catch (UnsupportedEncodingException e) {
// 处理异常情况
throw new RuntimeException(e);
}
return ans;
}
java复制代码public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最终生成的 URL 的值为:" + ansUrl);
}
运行结果:
perl复制代码https://example.com/resource?a=%E5%B0%8F%E9%BB%91
粘贴到浏览器上会被浏览器解码出来给用户看到:
ini复制代码example.com/resource?a=小黑
网页截图:
java复制代码public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小 黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最终生成的 URL 的值为:" + ansUrl);
}
运行结果:
perl复制代码https://example.com/resource?a=%E5%B0%8F+%E9%BB%91
粘贴到浏览器上会被浏览器解码出来给用户看到:
ini复制代码https://example.com/resource?a=小+黑
网页截图:
java复制代码public static String generateContent(String content) {
// 将 content 进行 url 编码
String ans;
try {
// -----------------------调整-----------------------
ans = URLEncoder.encode(content, "UTF-8").replace("+", "%20");
} catch (UnsupportedEncodingException e) {
// 处理异常情况
throw new RuntimeException(e);
}
return ans;
}
public static void main(String[] args) {
String baseUrl = "https://example.com/resource?a=";
String content = "小 黑";
String ansUrl = baseUrl + generateContent(content);
System.out.println("最终生成的 URL 的值为:" + ansUrl);
}
运行结果:
perl复制代码https://example.com/resource?a=%E5%B0%8F%20%E9%BB%91
粘贴到浏览器上会被浏览器解码出来给用户看到:
ini复制代码https://example.com/resource?a=小 黑
网页截图:
其中 %20 是空格经过编码后的结果
从上面的案例可以看到,如果 url 中有空格出现,且不经过特殊处理,那么将会导致浏览器无法正确解析 url,从而导致 url 重定向失败,那么问题的原因是什么呢?首先来看一下URL的组成部分
下面是一个简单的 URL 链接:
bash复制代码http://localhost:8080/path/to/index.html?id=123#content
它主要有下面几个部分组成
在 URL 编码过程中,会遵循以下的规则:
页面更新:2024-05-18
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号