Mon Java utilise l'encodage base64 qui met une nouvelle ligne (\n
) Après chaque 76 caractères. J'ai besoin de mettre cette chaîne encodée dans un fichier de propriétés et la nouvelle ligne casse la fonctionnalité .
Quand je fais une encodedString.replaceAll("\n", "");
les choses fonctionnent bien, mais je veux juste m'assurer que cela est prévu et je n'introduis pas de problème caché.
La rupture d'une chaîne codée en base64 en plusieurs lignes a été nécessaire pour de nombreux anciens programmes qui ne pouvaient pas gérer les longues lignes. Les programmes écrits en Java peuvent généralement gérer les longues lignes car ils n'ont pas besoin de gérer eux-mêmes la mémoire. Tant que vos lignes sont inférieures à 64 millions de caractères, cela ne devrait poser aucun problème.
Et puisque vous n'avez pas besoin des nouvelles lignes, vous ne devriez pas les générer du tout, si possible.
Certains des encodeurs Base64 ajoutent des caractères EOL comme CRLF ('\ r\n') aux chaînes encodées. Vous pouvez utiliser Base64.encodeBase64URLSafe pour vous en débarrasser:
Encode les données binaires à l'aide d'une variante de l'URL de l'algorithme base64, mais ne fragmente pas la sortie. La variation url-safe émet - et _ au lieu de + et/caractères. Remarque: aucun rembourrage n'est ajouté.