Первый:
- Выберите кодировку. UTF-8, как правило, хороший выбор; придерживайтесь кодировки, которая определенно будет действительна с обеих сторон. Было бы редко использовать что-либо, кроме UTF-8 или UTF-16.
Передающий конец:
- Кодировать строку в байты (например,
text.getBytes(encodingName)
)
- Кодирование байтов в base64 с использованием
Base64
класса
- Передача базы64
Получающий конец:
- Получите базу64
- Декодировать base64 в байты, используя
Base64
класс
- Декодировать байты в строку (например,
new String(bytes, encodingName)
)
Так что-то вроде:
// Sending side
byte[] data = text.getBytes("UTF-8");
String base64 = Base64.encodeToString(data, Base64.DEFAULT);
// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, "UTF-8");
или с StandardCharsets
:
// Sending side
byte[] data = text.getBytes(StandardCharsets.UTF_8);
String base64 = Base64.encodeToString(data, Base64.DEFAULT);
// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, StandardCharsets.UTF_8);