在 Java 中解码 Base64 数据

新手上路,请多包涵

我有一张经过 Base64 编码的图像。在 Java 中解码的最佳方法是什么?希望只使用 Sun Java 6 中包含的库。

原文由 Ryan P 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 516
2 个回答

从 v6 开始,Java SE 附带 JAXB。 javax.xml.bind.DatatypeConverter 有静态方法使这变得容易。参见 parseBase64Binary()printBase64Binary()

更新:JAXB 不再随 Java 一起提供(自 Java 11 起)。如果您的项目需要 JAXB,则需要通过依赖项管理系统(例如 Maven)配置相关库。如果您需要编译器( xjc.exe ),您还需要单独下载。

原文由 Jeremy Ross 发布,翻译遵循 CC BY-SA 4.0 许可协议

Java 8 开始,有官方支持的 Base64 编码和解码 API。随着时间的推移,这可能会成为默认选择。

API 包括类 java.util.Base64 及其嵌套类。它支持三种不同的风格:基本、URL 安全和 MIME。

使用“基本”编码的示例代码:

 import java.util.Base64;

byte[] bytes = "Hello, World!".getBytes("UTF-8");
String encoded = Base64.getEncoder().encodeToString(bytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
String decodedStr = new String(decoded, StandardCharsets.UTF_8);

java.util.Base64 的文档 包括更多用于配置编码器和解码器以及使用不同类作为输入和输出(字节数组、字符串、字节缓冲区、java.io 流)的方法。

原文由 Andrea 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题