okhttp+gson+retrofit请求回来的中文数据乱码
2018-03-10 本文已影响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();
}
}