Android端解决后台PHP返回的Json中文乱码问题
2018-09-18 本文已影响0人
大道至简_知易行难
描述:最近开发中后台换成php,而后接收到的json数据log打印显示乱码,将json放在第三方格式化也没问题。查询了之后知道是php在不做处理时返回的数据默认会改成Unicode编码,php端有改的方法,这里主要说一下android端的解决
本工程采用的是rxJava+retrofit的网络框架,下面是php返回的json在logcat的显示
![](https://img.haomeiwen.com/i8753433/ee5037f6333f6da2.jpg)
下面是Android端解决的代码
//日志拦截器
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
//打印retrofit日志
Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))");
Matcher matcher = pattern.matcher(message);
char ch;
while (matcher.find()) {
ch = (char) Integer.parseInt(matcher.group(2), 16);
message = message.replace(matcher.group(1), ch + "");
}
Logger.e(TAG, "retrofitBack ======================= " + message);
}
});
而后是解决后的logcat显示
![](https://img.haomeiwen.com/i8753433/f903665c706811f4.jpg)
完事!收工