Как преобразовать тело ответа из byteArray в строку без использования строкового метода OkHttp и без потери информации? - PullRequest
0 голосов
/ 11 июня 2018

У меня следующая ситуация:

  • OkHttp Call
  • сохранить в db результат от: response.body.bytes ()
  • получить позжерезультат
  • преобразование в строку

Проблема заключается в том, что при преобразовании результата OkHttp из byteArray в строку специальные символы (такие как 'é', 'ã', 'ú') заменяются на,Если я просто использую response.body.string (), все работает нормально, но я понятия не имею, что происходит.Даже отправка запроса на google.com.br (или из любого другого региона) решает эту проблему, и они наверняка используют UTF-8.

Я пробовал String(byteArray, charset = UTF-8) и множество подобных методов.Пока ничего не получалось.

Итак, я хотел бы знать, как я могу преобразовать результат byteArray okHttp в строку без потери специальных символов?

Редактировать: только этот простой код уже вызывает проблемудля меня:

val client = OkHttpClient ()

val request = Request.Builder () .url ("https://www.google.com.br") .build ()

val response = client.newCall (запрос) .execute ()

val bytes = response.body () !!. Bytes ()

println (String (bytes))

...