Получение неверных данных при декодировании с использованием библиотеки общих кодеков appache - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть сценарий, в котором я получаю содержимое сертификата pkcs12 в виде закодированной строки (библиотека общего кодека appache).Теперь я должен декодировать эту строку и сохранить ее в файл.Но при декодировании его в виде строки я получаю недопустимое содержимое сертификата.

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

Для кодирования:

Base64.encodeBase64String(certcontentInBytes[])

Для декодирования:

new String(Base64.decodeBase64(certstringContent));

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Возможно, вам придется использовать new String(byte[], Charset charset) с правильной кодировкой (вероятно, UTF-8), потому что в противном случае он будет использовать кодировку платформы, которая отличается в Windows и Linux / Unix. Интересно, почему вы не можете просто использовать байтовый массив в качестве параметра?

0 голосов
/ 12 апреля 2019

new String(bytes) фактически делает new String(bytes, defaultCharset) для преобразования байтов, используя набор символов байтов, в строку Unicode.Непереносимая и вероятная неправильная кодировка.

Для байтов в качестве двоичных данных, которые не будут работать.Строка не должна использоваться для двоичных данных.Бьюсь об заклад, байт были записаны в файл.

...