【问题标题】:Convert Base64 String to Byte Value String in Java在 Java 中将 Base64 字符串转换为字节值字符串
【发布时间】:2014-12-22 16:27:51
【问题描述】:

我有一个 Base64 字符串,即“AAAC”,二进制相当于 3 个字节(00000000 00000000 00000010)。

我想将“AAAC”转换为 ASCII 十六进制字节字符串以输出类似“000002”的内容。

我在下面试过了。

byte[] test = Base64.decode(data.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : test) {
    sb.append(String.format("%02X ", b));
}
System.out.println(sb.toString()); 
//Output: 00 00 02 

这可行,但有没有更有效的方法来做到这一点?

任何帮助将不胜感激。 提前致谢。

【问题讨论】:

    标签: java string binary base64 ascii


    【解决方案1】:

    您可以为此使用 DatatypeConverter 类:

    String result =
        DatatypeConverter.printHexBinary(DatatypeConverter
            .parseBase64Binary("AAAC"));
    
    System.out.println(result);
    

    打印:000002

    【讨论】:

      【解决方案2】:

      使用Guava library,这可能看起来像

      BaseEncoding.base16().toUpperCase().withSeparator(" ", 2)
        .encode(BaseEncoding.base64().decode(data));
      

      【讨论】:

        猜你喜欢
        • 2021-12-12
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 2016-10-21
        • 2016-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多