java如何url编码
URL编码的基本概念
URL编码是将URL中的特殊字符转换为%后跟两位十六进制数的形式。例如,空格会被编码为%20。Java提供了内置类java.net.URLEncoder来实现这一功能。
使用URLEncoder.encode()
URLEncoder.encode()方法接收两个参数:待编码的字符串和字符编码格式(如UTF-8)。以下是一个简单示例:

import java.net.URLEncoder;
import java.io.UnsupportedEncodingException;
public class UrlEncodeExample {
public static void main(String[] args) {
try {
String originalUrl = "https://example.com/search?q=java url编码";
String encodedUrl = URLEncoder.encode(originalUrl, "UTF-8");
System.out.println("Encoded URL: " + encodedUrl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
输出结果会将空格、中文等字符转换为编码形式,例如%20和%E7%BC%96%E7%A0%81。

处理查询参数的分段编码
在拼接URL时,通常需要对查询参数单独编码,而非整个URL。例如:
String baseUrl = "https://example.com/search";
String query = "java url编码";
String encodedQuery = URLEncoder.encode(query, "UTF-8");
String fullUrl = baseUrl + "?q=" + encodedQuery;
注意事项
URLEncoder.encode()会将/、:等合法URL字符也编码。若需保留这些字符,需手动处理或使用其他工具库。- 路径参数和查询参数的编码规则可能不同,需根据实际场景调整。
替代方案:Apache Commons Codec
若项目已引入Apache Commons Codec,可使用org.apache.commons.codec.net.URLCodec:
import org.apache.commons.codec.net.URLCodec;
URLCodec codec = new URLCodec("UTF-8");
String encoded = codec.encode("java url编码");






