diff --git a/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java b/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java
index b45316b41..04520fc5c 100644
--- a/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/net/URLEncoder.java
@@ -174,6 +174,7 @@ public class URLEncoder implements Serializable {
encoder.addSafeCharacter('-');
encoder.addSafeCharacter('.');
encoder.addSafeCharacter('_');
+
encoder.addSafeCharacter('=');
encoder.addSafeCharacter('&');
@@ -216,21 +217,14 @@ public class URLEncoder implements Serializable {
/**
* 构造
- *
* [a-zA-Z0-9]默认不被编码 */ public URLEncoder() { this(new BitSet(256)); - for (char i = 'a'; i <= 'z'; i++) { - addSafeCharacter(i); - } - for (char i = 'A'; i <= 'Z'; i++) { - addSafeCharacter(i); - } - for (char i = '0'; i <= '9'; i++) { - addSafeCharacter(i); - } + // unreserved + addAlpha(); + addDigit(); } /** @@ -312,4 +306,27 @@ public class URLEncoder implements Serializable { } return rewrittenPath.toString(); } + + /** + * 增加安全字符[a-z][A-Z] + */ + private void addAlpha() { + for (char i = 'a'; i <= 'z'; i++) { + addSafeCharacter(i); + } + for (char i = 'A'; i <= 'Z'; i++) { + addSafeCharacter(i); + } + } + + /** + * 增加数字1-9 + */ + private void addDigit() { + for (char i = '0'; i <= '9'; i++) { + addSafeCharacter(i); + } + } + + } diff --git a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java index 4549cad4b..ac3d8a7fb 100644 --- a/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/url/UrlBuilder.java @@ -156,7 +156,9 @@ public final class UrlBuilder implements Serializable { * @return UrlBuilder */ public static UrlBuilder of(String scheme, String host, int port, String path, String query, String fragment, Charset charset) { - return of(scheme, host, port, UrlPath.of(path, charset), UrlQuery.of(query, charset, false), fragment, charset); + return of(scheme, host, port, + UrlPath.of(path, charset), + UrlQuery.of(query, charset, false), fragment, charset); } /**