okhttp+gson+retrofit请求回来的中文数据乱码

注意我说的是,请求到移动端的数据乱码,不是请求到服务器端后,服务器拿到数据乱码,

网上找到的方案,要不就是解决post请求后,服务器端拿到数据乱码,要么就是解析时直接用okhttp 拿到respone后,自己设定编码格式解析,我找了一圈也没找到
retrofit设置请求回来数据解析的编码格式,

特此记录以防后面人采坑
我在查看retrofit设置gson解析时发现了这里


image.png

GsonConverterFactory 有一个responseBodyConverter方法


image.png

我们跟进去看下 GsonresponseBody是如何实现


image.png

看到重点了吧,我们指定编码格式即可

  @Override 
public T convert(ResponseBody value) throws IOException {
    JsonReader jsonReader = gson.newJsonReader(new InputStreamReader(value.byteStream(), "gbk"));
    try {
      return adapter.read(jsonReader);
    } finally {
      value.close();
    }
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容