在Java中,`java.net.URLEncoder`类的`encode`方法可以实现和JavaScript的`encodeURI`类似的效果。不过需要注意的是,`URLEncoder`默认使用的是`application/x-www-form-urlencoded`编码,它会将空格编码为`+`,而`encodeURI`会将空格编码为`%20`。 以下是示例代码: ```java import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class URLEncodeExample { public static void main(String[] args) { String url = "https://example.com/path with spaces"; try { // 使用UTF-8编码对URL进行编码 String encodedUrl = URLEncoder.encode(url, "UTF-8"); // 将编码后的 + 替换为 %20 以符合 encodeURI 的行为 encodedUrl = encodedUrl.replace("+", "%20"); System.out.println(encodedUrl); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } ``` 代码 1. `import java.io.UnsupportedEncodingException;`:导入处理不支持的字符编码异常的类。 2. `import java.net.URLEncoder;`:导入用于对URL进行编码的类。 3. `String encodedUrl = URLEncoder.encode(url, "UTF-8");`:使用`URLEncoder`的`encode`方法对URL进行编码,指定字符编码为`UTF-8`。 4. `encodedUrl = encodedUrl.replace("+", "%20");`:将编码后的`+`替换为`%20`,以符合`encodeURI`的行为。 额外需要注意的逻辑点: 1. 确保使用`UTF-8`编码,因为它是目前互联网上使用最广泛的字符编码。 2. 处理`UnsupportedEncodingException`异常,以防止因不支持的字符编码导致程序崩溃。 3. 要清楚`URLEncoder`和`encodeURI`在编码空格等特殊字符上的差异,根据实际需求进行处理。 [2025-06-24 09:59:52 | AI写代码神器 | 490点数解答]