diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/Base64Encoder.java b/hutool-core/src/main/java/cn/hutool/core/codec/Base64Encoder.java index a70ec5a7d..457389202 100644 --- a/hutool-core/src/main/java/cn/hutool/core/codec/Base64Encoder.java +++ b/hutool-core/src/main/java/cn/hutool/core/codec/Base64Encoder.java @@ -132,7 +132,7 @@ public class Base64Encoder { * * @param arr 被编码的数组 * @param isMultiLine 在76个char之后是CRLF还是EOF - * @param isUrlSafe 是否使用URL安全字符,一般为{@code false} + * @param isUrlSafe 是否使用URL安全字符,在URL Safe模式下,=为URL中的关键字符,不需要补充。空余的byte位要去掉,一般为{@code false} * @return 编码后的bytes */ public static byte[] encode(byte[] arr, boolean isMultiLine, boolean isUrlSafe) { diff --git a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java index b3ba9f123..fa42ec7db 100644 --- a/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java +++ b/hutool-core/src/test/java/cn/hutool/core/codec/Base64Test.java @@ -7,18 +7,28 @@ import org.junit.Test; /** * Base64单元测试 - * + * * @author looly * */ public class Base64Test { - + @Test public void encodeAndDecodeTest() { String a = "伦家是一个非常长的字符串66"; String encode = Base64.encode(a); Assert.assertEquals("5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5LiyNjY=", encode); - + + String decodeStr = Base64.decodeStr(encode); + Assert.assertEquals(a, decodeStr); + } + + @Test + public void encodeAndDecodeWithoutPaddingTest() { + String a = "伦家是一个非常长的字符串66"; + String encode = Base64.encodeWithoutPadding(StrUtil.utf8Bytes(a)); + Assert.assertEquals("5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5LiyNjY", encode); + String decodeStr = Base64.decodeStr(encode); Assert.assertEquals(a, decodeStr); } @@ -28,7 +38,7 @@ public class Base64Test { String a = "a61a5db5a67c01445ca2-HZ20181120172058/pdf/中国电信影像云单体网关Docker版-V1.2.pdf"; String encode = Base64.encode(a, CharsetUtil.UTF_8); Assert.assertEquals("YTYxYTVkYjVhNjdjMDE0NDVjYTItSFoyMDE4MTEyMDE3MjA1OC9wZGYv5Lit5Zu955S15L+h5b2x5YOP5LqR5Y2V5L2T572R5YWzRG9ja2Vy54mILVYxLjIucGRm", encode); - + String decodeStr = Base64.decodeStr(encode, CharsetUtil.UTF_8); Assert.assertEquals(a, decodeStr); } @@ -42,7 +52,7 @@ public class Base64Test { String decodeStr = Base64.decodeStr(encode); Assert.assertEquals(a, decodeStr); } - + @Test public void urlSafeEncodeAndDecodeTest() { String a = "广州伦家需要安全感55";