是否可以删除 Base64 编码中的换行符

2022-08-31 16:43:35

我的java应用程序使用base64编码,每76个字符后放置一个新行()。我需要将此编码的字符串放在属性文件中,换行符会破坏功能。\n

当我做一件事时,事情工作正常,但我只想确保这是预期的,我不会引入一个隐藏的问题。encodedString.replaceAll("\n", "");


答案 1

将 base64 编码的字符串分解为多行对于许多无法处理长行的旧程序是必要的。用Java编写的程序通常可以处理长行,因为它们不需要自己进行内存管理。只要您的行少于6400万个字符,就应该没有问题。

由于您不需要换行符,因此如果可能的话,根本不应该生成它们。


答案 2

某些 Base64 编码器将 EOL 字符(如 CRLF ('\r\n'))追加到编码字符串中。您可以使用 Base64.encodeBase64URLSafe 来摆脱它们:

使用 base64 算法的 URL 安全变体对二进制数据进行编码,但不对输出进行分块。url-safe 变体发出 - 和 _ 而不是 + 和 / 字符。注意:不添加填充。


推荐