gpt4 book ai didi

java - 如何在没有填充的情况下获取 Base64 编码的数据?

转载 作者:行者123 更新时间:2023-11-29 08:43:36 24 4
gpt4 key购买 nike

我是 Clojure 的新手。我对 Java 及其库函数没有任何经验。我在 clojure 中编写了一个函数,它使用 java.util.Base64/getUrlEncoder 返回 Base64 编码的数据。我的代码如下所示:

user> (import java.util.Base64)
java.util.Base64
user> (let [encoder (Base64/getUrlEncoder)]
(String. (.encode encoder (.getBytes "Hello StackOverflow"))))
"SGVsbG8gU3RhY2tPdmVyZmxvdw=="

如您所见,输出包含填充:末尾有两个等号。我不想要那个填充。

我看到 Java 的 Base64.Encoder 类有 a 'withoutPadding()' method为此目的,但我不知道如何在 Clojure 中使用它。我试过这样的事情:

user> (let [encoder (Base64/getUrlEncoder))]
(doto (java.util.Base64/Encoder (.withoutPadding (String. (.encode encoder (.getBytes "Hello StackOverflow"))))))

但是没有用。我该怎么做?

最佳答案

您必须在编码器本身上调用 withoutPadding:

user> (import java.util.Base64)
java.util.Base64
user> (let [encoder (Base64/getUrlEncoder)]
(String. (.encode encoder (.getBytes "Hello StackOverflow"))))
"SGVsbG8gU3RhY2tPdmVyZmxvdw=="
user> (let [encoder (.withoutPadding (Base64/getUrlEncoder))]
(String. (.encode encoder (.getBytes "Hello StackOverflow"))))
"SGVsbG8gU3RhY2tPdmVyZmxvdw"

关于java - 如何在没有填充的情况下获取 Base64 编码的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38132016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com