java urlencode如何使用
URL编码的基本概念
URL编码(Percent-Encoding)是将特殊字符转换为%后跟两位十六进制数的形式。例如,空格会被编码为%20。
Java中的URL编码实现
Java中可通过java.net.URLEncoder类实现URL编码。以下是一个完整示例:
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class UrlEncodeExample {
public static void main(String[] args) {
String original = "测试数据!@#$";
String encoded = URLEncoder.encode(original, StandardCharsets.UTF_8);
System.out.println("Encoded: " + encoded);
}
}
关键参数说明
StandardCharsets.UTF_8:指定编码使用的字符集,推荐始终使用UTF-8- 需要处理
UnsupportedEncodingException(已检查异常)
处理异常情况
更健壮的实现应包含异常处理:
try {
String safeString = URLEncoder.encode("特殊字符", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
编码规则细节
- 字母数字字符(a-z, A-Z, 0-9)保持不变
- 连字符(-)、下划线(_)、点(.)和星号(*)保持不变
- 空格转换为
+或%20(取决于实现) - 其他所有字符转换为
%XX形式
常见应用场景
-
构造查询参数:
String url = "http://example.com/search?q=" + URLEncoder.encode("java教程", "UTF-8"); -
表单数据提交:

String postData = "name=" + URLEncoder.encode("张三", "UTF-8") + "&age=25";
注意事项
- 不要对整个URL进行编码,只应对参数部分编码
- 不同字符集会产生不同编码结果
URLEncoder会将空格转为+,而URI类会转为%20- 解码使用对应的
URLDecoder类






