gpt4 book ai didi

Java - 解码base64 - 非法base64字符1

转载 作者:行者123 更新时间:2023-12-02 01:22:03 25 4
gpt4 key购买 nike

我的文件中有以下数据: enter image description here

我想解码用户数据。将其作为字符串 comment 读取时,我正在执行以下操作:

String[] split = comment.split("=");
if(split[0].equals("UserData")) {
System.out.println(split[1]);
byte[] callidArray = Arrays.copyOf(java.util.Base64.getDecoder().decode(split[1]), 9);
System.out.println("UserData:" + Hex.encodeHexString(callidArray).toString());
}

但我遇到以下异常:

java.lang.IllegalArgumentException: Illegal base64 character 1

可能是什么原因?

最佳答案

该图像表明您尝试解码的字符串包含 SOH 和 BEL 等字符。这些是 ASCII 控制字符,永远不会出现在 Base64 编码的字符串中。

(Base64 通常由字母、数字、+\= 组成。有一些变体格式,但控制字符是从未包含在内。)

这由异常消息确认:

  java.lang.IllegalArgumentException: Illegal base64 character 1

SOH 字符的 ASCII 代码为 1。

<小时/>

结论:

  1. 您无法将该字符串像 Base64 一样进行解码。这是行不通的。
  2. 看起来字符串根本没有“编码”......在Java中“编码”的正常意义上。
  3. 如果没有明确说明以下内容,我们无法就您应该如何使用它提供建议:

    • (二进制)数据来自哪里,
    • 您期望其中包含的内容,以及
    • 如何读取数据并将其转换为 Java String 对象:向我们展示执行此操作的代码!

关于Java - 解码base64 - 非法base64字符1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com