Base64 编码:非法 base64 字符 3c

新手上路,请多包涵

我正在尝试将 xml 格式的数据解码为字节 base64 我遇到了问题。我的方法是在 java 中使用 String 数据并将其转换为 bytes 如下所示。

 String data = "......"; //string of data in xml format
byte[] dataBytes = Base64.getDecoder().decode(data);

哪个失败了,并给出了如下所示的异常。

 java.lang.IllegalArgumentException: Illegal base64 character 3c
    at java.util.Base64$Decoder.decode0(Base64.java:714)
    at java.util.Base64$Decoder.decode(Base64.java:526)
    at java.util.Base64$Decoder.decode(Base64.java:549)
    at XmlReader.main(XmlReader.java:61)

xml 格式是否与 base64 不兼容?

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

阅读 2.8k
2 个回答

感谢@luk2302 我能够解决这个问题。在解码字符串之前,我需要先将其编码为 Base64

     byte[] dataBytes = Base64.getEncoder().encode(data.getBytes());
    dataBytes = Base64.getDecoder().decode(dataBytes);

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

只需使用此方法

getMime解码器()

 String data = "......";
byte[] dataBytes =  Base64.getMimeDecoder().decode(data);

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

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