Base64 кодирование / удаление не работает со специальными символами в Java 1.6 - PullRequest
0 голосов
/ 24 октября 2019

Я использую JDK 1.6 и сталкиваюсь с проблемой при попытке кодирования / декодирования французских слов. Мой код находится под:

String setText = "Vos factures impayées Internet sont";
String encodedText= Base64.encode(setText.getBytes());
Base64.decode(encodedText);
System.out.println("Encoded String: " + encodedText);
byte[] result =  Base64.decode(encodedText);
String decodedString = new String(result);
System.out.println("Decoded: " + decodedString);

Результат: Оригинальная строка Vos factures impayées Internet sont

Кодированная строка: Vm9zIGZhY3R1cmVzIGltcGF577 + 9ZXMgSW50ZXJuZXQgc29udA * 100 * Facts * 100es Internet sont

Проблема: при расшифровке строки я получаю специальный символ "�" вместо "é"

1 Ответ

0 голосов
/ 24 октября 2019

У меня нет Java 1.6, но попробуйте явно указать кодировку, чтобы не полагаться на настройки платформы, как это. возможно это поможет.

String decodedString = new String(result, "UTF-8");

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

...