我想要一些像"string" - > base64这样简单的东西.使用较旧的base64.encode-str它很容易(并且听起来更"讨厌",但是较新的clojure.data.codec.base64需要输入和输出流,并且似乎是围绕Java做事方式的丑陋包装.
那么,有一个字符串,获得base64编码数组的方式是什么?谢谢
nll*_*oyd 27
四年后,但我认为如果你的JDK 1.8或更高,这值得一提.它只是使用java.util.Base64
(:import java.util.Base64)
(defn encode [to-encode]
(.encode (Base64/getEncoder) (.getBytes to-encode)))
Run Code Online (Sandbox Code Playgroud)
(:import java.util.Base64)
(defn encode [to-encode]
(.encodeToString (Base64/getEncoder) (.getBytes to-encode)))
Run Code Online (Sandbox Code Playgroud)
(:import java.util.Base64)
(defn decode [to-decode]
(String. (.decode (Base64/getDecoder) to-decode)))
Run Code Online (Sandbox Code Playgroud)
Bri*_*ick 17
另一个答案还需要一个步骤:将字节数组结果encode转换为字符串.这是我做的:
(:require [clojure.data.codec.base64 :as b64])
(defn string-to-base64-string [original]
(String. (b64/encode (.getBytes original)) "UTF-8"))
Run Code Online (Sandbox Code Playgroud)
Nik*_*zov 11
您可以使用encode函数并传递字节数组:
(encode (.getBytes "Hello world!"))
Run Code Online (Sandbox Code Playgroud)