我的java应用程序使用base64编码,它\n在每76个字符后放置一个新的line().我需要将此编码的字符串放在属性文件中,换行符会破坏功能.
当我做的encodedString.replaceAll("\n", "");事情工作正常,但我只是想确保这是预期的,我不会引入一个隐藏的问题.
Rol*_*lig 46
对于许多无法处理长行的旧程序,必须将base64编码的字符串分成多行.用Java编写的程序通常可以处理长行,因为它们本身不需要进行内存管理.只要您的行短于6400万个字符就应该没有问题.
而且由于您不需要换行符,如果可能的话,您根本不应该生成换行符.
一些Base64编码器将诸如CRLF('\ r \n')之类的EOL字符附加到编码字符串.您可以使用Base64.encodeBase64URLSafe来摆脱它们:
使用base64算法的URL安全变体对二进制数据进行编码,但不会对输出进行分块.url-safe变体发出 - 而_而不是+和/字符.注意:不添加填充.
您只需要按以下方式使用 Base64 编码
Base64.encodeBase64String("Your data to encrypt in base64")
Run Code Online (Sandbox Code Playgroud)
将上面的行更改为以下内容
Base64.encodeBase64String("Your data to encrypt in base64",Base64.NO_WRAP)
Run Code Online (Sandbox Code Playgroud)
这将解决您的问题。