Выберите кодировку. UTF-8, как правило, хороший выбор; придерживайтесь кодировки, которая определенно будет действительна с обеих сторон. Редко можно использовать что-то другое, кроме UTF-8 или UTF-16.
Конец передачи:
Кодируйте строку в байты (например, text.getBytes(encodingName))
Закодируйте байты в base64 с помощью Base64 класса
Передать base64
Принимающая сторона:
Получить base64
Декодируйте base64 в байты с помощью Base64 класса
Декодируйте байты в строку (например, new String(bytes, encodingName))
Итак, что-то вроде:
// Sending side byte[] data = text.getBytes("UTF-8"); Stringbase64= Base64.encodeToString(data, Base64.DEFAULT);
// Receiving side byte[] data = Base64.decode(base64, Base64.DEFAULT); Stringtext=newString(data, "UTF-8");
Или с StandardCharsets:
// Sending side byte[] data = text.getBytes(StandardCharsets.UTF_8); Stringbase64= Base64.encodeToString(data, Base64.DEFAULT);
// Receiving side byte[] data = Base64.decode(base64, Base64.DEFAULT); Stringtext=newString(data, StandardCharsets.UTF_8);
Ответ 2
Для Kotlin mb лучше использовать это:
fun String.decode(): String { return Base64.decode(this, Base64.DEFAULT).toString(charset("UTF-8")) }
fun String.encode(): String { return Base64.encodeToString(this.toByteArray(charset("UTF-8")), Base64.DEFAULT) }