美文网首页
okhttp+gson+retrofit请求回来的中文数据乱码

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

作者: 菜鸟程序员_ | 来源:发表于2018-03-10 22:37 被阅读1410次

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

    网上找到的方案,要不就是解决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();
        }
      }
    

    相关文章

      网友评论

          本文标题:okhttp+gson+retrofit请求回来的中文数据乱码

          本文链接:https://www.haomeiwen.com/subject/fzabfftx.html