私のJavaアプリケーションは、76文字ごとに改行(_\n
_)を挿入するbase64エンコードを使用します。このエンコードされた文字列をプロパティファイルに配置する必要があります。
encodedString.replaceAll("\n", "");
を実行すると、問題なく動作しますが、これが期待されていることを確認したいだけで、隠れた問題は発生していません。
Base64でエンコードされた文字列を複数行に分割することは、長い行を処理できなかった多くの古いプログラムで必要でした。 Javaで記述されたプログラムは、メモリ管理を自分で行う必要がないため、通常長い行を処理できます。行が6,400万文字より短い限り、問題はないはずです。
そして、改行は必要ないので、可能であればそれらをまったく生成すべきではありません。
Base64エンコーダーの中には、CRLF( '\ r\n')などのEOL文字をエンコードされた文字列に追加するものがあります。 Base64.encodeBase64URLSafe を使用してそれらを取り除くことができます:
Base64アルゴリズムのURLセーフなバリエーションを使用してバイナリデータをエンコードしますが、出力をチャンクしません。 url-safeバリエーションは、+および/文字の代わりに-および_を出力します。注:パディングは追加されません。