21

「文字列」-> base64 のような単純なものが必要です。古い base64.encode-str では簡単でした (そして「より多くの clojure」に聞こえましたが、新しいものclojure.data.codec.base64は入力ストリームと出力ストリームを必要とし、Java のやり方の醜いラッパーのようです。

では、base64 でエンコードされた配列を取得するために、文字列を使用する方法は何ですか? ありがとう

4

6 に答える 6

42

4 年後ですが、 JDK 1.8以降を使用している場合は、言及する価値があると思います。使うだけjava.util.Base64

文字列をエンコードするには -> Base64:

(:import java.util.Base64)

(defn encode [to-encode]
  (.encode (Base64/getEncoder) (.getBytes to-encode)))

文字列をエンコードするには -> Base64 (文字列):

(:import java.util.Base64)

(defn encode [to-encode]
  (.encodeToString (Base64/getEncoder) (.getBytes to-encode)))

Base64 (byte[] または String) -> String をデコードするには:

(:import java.util.Base64)

(defn decode [to-decode]
  (String. (.decode (Base64/getDecoder) to-decode)))
于 2016-08-28T07:09:27.447 に答える
20

もう 1 つの回答には、もう 1 つの手順が必要です。バイト配列の結果をencode文字列に変換することです。これが私がすることです:

(:require [clojure.data.codec.base64 :as b64])

(defn string-to-base64-string [original]
  (String. (b64/encode (.getBytes original)) "UTF-8"))
于 2013-05-27T22:35:52.057 に答える
12

エンコード機能を使用して、バイト配列を渡すことができます。

(encode (.getBytes "Hello world!"))
于 2012-08-06T09:19:56.680 に答える