我在clojure中非常新。我没有任何java& amp;它的库函数。我在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=="
输出也包含填充(最后两个等号)。我想从输出中删除填充。 https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html#withoutPadding--我知道这对解决我的问题很有用,但我无法弄清楚如何在clojure中使用 withoutPadding()函数。我试过这样的事情:
user> (let [encoder (Base64/getUrlEncoder))]
(doto (java.util.Base64/Encoder (.withoutPadding (String. (.encode encoder (.getBytes "Hello StackOverflow"))))))
但这是错误的。谁能说出确切的解决方案?感谢。
答案 0 :(得分:4)
您必须在编码器本身上调用thread_local
:
withoutPadding