Управление новыми линиями в Base64 - PullRequest
0 голосов
/ 04 февраля 2019

Я работаю над проектом Java, который отправляет файлы XML в другое приложение, которое отправляет письма многим пользователям.

В моем XML я хочу установить содержимое во вложении, поэтому я использую Base64.

Моя проблема в том, что содержимое моих писем состоит из нескольких строк, но я не знаю, как использовать Base64, чтобы пользователи могли получать содержимое вложений с новыми строками.

Какой пользователь долженполучить во вложении:

20181231 IT FR 00188660 00188770
20181231 IT FC 00000914 00000921
20181231 DE FR 00424997 00425093
20181231 DE FC 00000558 00000567

что они получают:

20181231 IT FR 00188660 0018877020181231 IT FC 00000914 0000092120181231 DE FR 00424997 0042509320181231 DE FC 00000558 00000567

Итак, мой вопрос, как установить новые строки во вложении с base64?

Мой код JAVA:

line = in.readLine();
byte[] bytesEncoded = Base64.encodeBase64(line.substring(22).getBytes());
fstream.write(bytesEncoded);

Я читаю строку из плоского файла, кодирую ее в base64 и записываю результат в файл XML

1 Ответ

0 голосов
/ 04 февраля 2019

Base64 кодирует символ новой строки, как и любой другой символ.Вы можете подтвердить это путем кодирования простого двухстрочного текста:

String input = "a\nb";
String encoded = Base64.getEncoder().encodeToString(input.getBytes());
String output = new String(Base64.getDecoder().decode(encoded));
System.out.println(output); 

закодирует a\nb как YQpi и выведет:

a
b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...