ava - 解码base64 - 非法base64字符1 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

小六码奴 2019-08-17 17:59:07 1362

我想解码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

可能是什么原因?

分享到
取消 提交回答
全部回答(1)
  • 刘琨1227
    2019-08-17 18:00:31

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

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

    这由异常消息确认:

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

    结论:

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

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

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章