From 20794884a72b55c337cfa4296ef5f8da69ed9f2c Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 19 Mar 2022 21:14:27 +0800 Subject: [PATCH] deprecated class --- CHANGELOG.md | 1 + .../java/cn/hutool/core/net/URLEncodeUtil.java | 16 +++++----------- .../main/java/cn/hutool/core/net/URLEncoder.java | 2 ++ .../java/cn/hutool/core/util/URLUtilTest.java | 9 ++++++++- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d1e55cd6..14a41417d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * 【db 】 【不向下兼容】增加MongoDB4.x支持(pr#568@Gitee) * 【json 】 【可能兼容问题】修改JSONObject结构,继承自MapWrapper * 【core 】 【可能兼容问题】BeanCopier重构,新建XXXCopier,删除XXXValueProvider +* 【core 】 【可能兼容问题】URLEncoder废弃,URLEncoderUtil使用RFC3986 ### 🐣新特性 * 【http 】 HttpRequest.form采用TableMap方式(issue#I4W427@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/net/URLEncodeUtil.java b/hutool-core/src/main/java/cn/hutool/core/net/URLEncodeUtil.java index cc01cd212..c6fd983b5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/net/URLEncodeUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/net/URLEncodeUtil.java @@ -36,7 +36,7 @@ public class URLEncodeUtil { * @throws UtilException UnsupportedEncodingException */ public static String encodeAll(String url, Charset charset) throws UtilException { - return URLEncoder.ALL.encode(url, charset); + return RFC3986.UNRESERVED.encode(url, charset); } /** @@ -64,7 +64,7 @@ public class URLEncodeUtil { * @since 4.4.1 */ public static String encode(String url, Charset charset) { - return URLEncoder.DEFAULT.encode(url, charset); + return RFC3986.PATH.encode(url, charset); } /** @@ -92,7 +92,7 @@ public class URLEncodeUtil { * @since 4.4.1 */ public static String encodeQuery(String url, Charset charset) { - return URLEncoder.QUERY.encode(url, charset); + return RFC3986.QUERY.encode(url, charset); } /** @@ -135,10 +135,7 @@ public class URLEncodeUtil { if (StrUtil.isEmpty(url)) { return url; } - if (null == charset) { - charset = CharsetUtil.defaultCharset(); - } - return URLEncoder.PATH_SEGMENT.encode(url, charset); + return RFC3986.SEGMENT.encode(url, charset); } /** @@ -185,9 +182,6 @@ public class URLEncodeUtil { if (StrUtil.isEmpty(url)) { return url; } - if (null == charset) { - charset = CharsetUtil.defaultCharset(); - } - return URLEncoder.FRAGMENT.encode(url, charset); + return RFC3986.FRAGMENT.encode(url, charset); } } 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 cbed10e1e..ee519ea55 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 @@ -23,7 +23,9 @@ import java.util.BitSet; * * @author looly * @see cn.hutool.core.codec.PercentCodec + * @deprecated 此类中的方法并不规范,请使用 {@link RFC3986} */ +@Deprecated public class URLEncoder implements Serializable { private static final long serialVersionUID = 1L; diff --git a/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java index e04aa3d9a..b8a997e32 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/URLUtilTest.java @@ -83,7 +83,14 @@ public class URLUtilTest { Assert.assertEquals(body, URLUtil.decode(encode)); String encode2 = URLUtil.encodeQuery(body); - Assert.assertEquals("366466+-+%E5%89%AF%E6%9C%AC.jpg", encode2); + Assert.assertEquals("366466%20-%20%E5%89%AF%E6%9C%AC.jpg", encode2); + } + + @Test + public void encodeQueryPlusTest() { + String body = "+"; + String encode2 = URLUtil.encodeQuery(body); + Assert.assertEquals("+", encode2); } @Test