Основной причиной проблемы является способ представления зашифрованных данных. Используемая кодировка символов не распознает эти символы как одну из его кодировки и не имеет подходящего глифа (шрифта) для этих символов. Даже тогда, когда вы использовали «правильную» кодировку символов (попробуйте отобразить ее с помощью UTF-8), она не была бы удобочитаемой для человека.
Я полагаю, что у вас есть вариант byte[]
, и вы пытаетесь преобразовать его в String
, используя new String(bytearray)
. Если ваша цель - перевести его как String
вместо byte[]
, тогда вам лучше использовать Apache Commons Codec Base64#encodeBase64String()
или преобразовать byte[]
в шестнадцатеричную строку, как следует:
StringBuilder hex = new StringBuilder(bytea.length * 2);
for (byte b : bytea) {
if ((b & 0xff) < 0x10) hex.append("0");
hex.append(Integer.toHexString(b & 0xff));
}
String hexString = hex.toString();