base64 エンコード/デコードに使用するライブラリを知りたいのですが? この機能は、本番環境で使用できるほど安定している必要があります。
質問する
201403 次
4 に答える
293
Java 9
Java 8 ソリューションを使用します。注 DatatypeConverter は引き続き使用できますが、java.xml.bind
含める必要があるモジュール内にあります。
module org.example.foo {
requires java.xml.bind;
}
Java 8
Java 8 ではjava.util.Base64
、base64 のエンコードとデコードが提供されるようになりました。
エンコーディング
byte[] message = "hello world".getBytes(StandardCharsets.UTF_8);
String encoded = Base64.getEncoder().encodeToString(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=
デコード
byte[] decoded = Base64.getDecoder().decode("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// => hello world
Java 6 および 7
Java 6 以降、あまり知られていないクラスjavax.xml.bind.DatatypeConverter
を使用できます。これは JRE の一部であり、追加のライブラリは必要ありません。
エンコーディング
byte[] message = "hello world".getBytes("UTF-8");
String encoded = DatatypeConverter.printBase64Binary(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=
デコード
byte[] decoded = DatatypeConverter.parseBase64Binary("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, "UTF-8"));
// => hello world
于 2013-01-19T10:19:34.543 に答える
15
Apache Commons内の commons-codec-1.7.jar には、エンコードに使用できるBase64クラスが含まれています。
Maven経由:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>20041127.091804</version>
</dependency>
于 2013-01-19T10:03:28.060 に答える
5
GuavaにはBase64もあります(他のエンコーディングや非常に便利なものの中でも)
于 2013-01-19T10:14:37.600 に答える