gpt4 book ai didi

Java Base64 Sun 到 JDK8

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:08:02 26 4
gpt4 key购买 nike

我在数据库中有一堆字符串,它们是不久前用 sun.misc.BASE64Encoder 编码的。

现在我想用 java.util.Base64 解码(并进一步编码字符串)。

两者的区别是Sun的每n个字符加了一个换行符

示例:

Sun Base64:   54y49568uyj304j534w5y
34y0639j6yh93j5h0653j
s45hr68o

JDK8 Base64: 54y49568uyj304j534w5y34y0639j6yh93j5h0653js45hr68o

为了让 JDK 解码器解析这些压缩字符串,我需要删除换行符。

问题:

  1. 我是删除 \r\n (Unix) 还是 \n (Windows) 或 \r(旧 Mac) ?因为字符串取决于它们被编码的机器

  2. 如果我说 zippedString.replaceAll("\r", "").replaceAll("\n", "") 我怎么能确保我不会实际字符串中的 \r 字符,导致数据损坏?

  3. 有没有其他方法可以在这两种机制之间建立桥梁?

最佳答案

Base64 中没有空格,所以我会全部删除。

String toDecode = str.replaceAll("\\s+", "");

这消除了关于如何处理特定换行符或空格的任何歧义。

关于Java Base64 Sun 到 JDK8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36307186/

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