如何将responseArray中的响应体转换为字符串而不使用OkHttp自己的字符串方法而不丢失信息?

时间:2018-06-10 21:31:23

标签: android kotlin okhttp

我遇到以下情况:

  • OkHttp Call
  • 在db中存储结果:response.body.bytes()
  • 稍后检索结果
  • 转换为字符串

问题是:当将来自byteArray的OkHttp结果转换为字符串时,特殊字符(如'é','ã','ú')将被替换为 。如果我只是使用response.body.string()一切正常,但我不知道发生了什么。即使向google.com.br(或任何其他地区)发出请求也可以解决此问题,他们肯定会使用UTF-8。

我尝试了String(byteArray, charset = UTF-8)和许多类似的方法。到目前为止没有任何工作。

所以我想知道,如何在不丢失特殊字符的情况下将okHttp byteArray结果转换为String?

编辑:这个简单的代码已经为我触发了问题:

  

val client = OkHttpClient()

     

val request = Request.Builder()     .URL( “https://www.google.com.br”)     .build()

     

val response = client.newCall(request).execute()

     

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

     

的println(字符串(字节))

0 个答案:

没有答案