开发者社区> 问答> 正文

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

我想解码UserData。在阅读它作为字符串时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:非法base64字符1

可能是什么原因?

展开
收起
小六码奴 2019-08-17 17:59:07 2827 0
1 条回答
写回答
取消 提交回答
  • 图像表明您尝试解码的字符串包含SOH和BEL等字符。这些是ASCII控制字符,不会出现在Base64编码的字符串中。

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

    这由异常消息确认:

    java.lang.IllegalArgumentException: Illegal base64 character 1 SOH字符具有ASCII码1。

    结论:

    您无法解码该字符串,就像它是Base64一样。它不会起作用。 它看起来像字符串不是“编码”在所有...中的什么“编码”在Java中是指通常意义上的。 如果没有明确的解释,我们无法告诉您应该怎么做:

    (二进制)数据来自哪里, 你期望它包含什么,和 如何读取数据并将其转换为Java String对象:向我们展示执行该操作的代码!

    2019-08-17 18:00:31
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载