59

\n私のJavaアプリケーションは、 76文字ごとに改行()を置くbase64エンコーディングを使用しています。このエンコードされた文字列をプロパティ ファイルに入れる必要があり、改行によって機能が損なわれます。

私が行うと、encodedString.replaceAll("\n", "");問題なく動作しますが、これが予期されていることを確認したいだけで、隠れた問題が発生していません。

4

5 に答える 5

62

長い行を処理できない多くの古いプログラムでは、base64 でエンコードされた文字列を複数の行に分割する必要がありました。Java で作成されたプログラムは、メモリ管理を自分で行う必要がないため、通常、長い行を処理できます。行が 6,400 万文字未満であれば問題ありません。

また、改行は必要ないため、可能であれば改行をまったく生成しないでください。

于 2013-11-19T07:51:01.733 に答える
13

Base64 エンコーダーの中には、CRLF ('\r\n') などの EOL 文字をエンコードされた文字列に追加するものがあります。Base64.encodeBase64URLSafeを使用してそれらを取り除くことができます:

base64 アルゴリズムの URL セーフ バージョンを使用してバイナリ データをエンコードしますが、出力をチャンクしません。URL セーフのバリエーションでは、+ および / 文字の代わりに - および _ が生成されます。注: パディングは追加されません。

于 2016-06-09T19:50:11.727 に答える