java后台从controller层请求三方接口,为什么返回到controller层的json数据乱码如何解决
时间: 2023-06-17 08:04:53 浏览: 210
出现乱码的原因可能是由于字符集不匹配或转码错误导致的。以下是解决方法:
1. 确认三方接口的返回数据的字符集编码,比如 UTF-8、GBK 等。
2. 在请求三方接口时,设置请求头的字符集编码为与第一步中确认的字符集编码一致。
3. 在 controller 层中,设置响应头的字符集编码一致,并且使用正确的字符集编码将数据转为 JSON 格式返回给前端。
例如,设置请求头的字符集编码:
```
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = new MediaType("application", "json", Charset.forName("UTF-8"));
headers.setContentType(mediaType);
```
设置响应头的字符集编码:
```
response.setCharacterEncoding("UTF-8");
```
使用正确的字符集编码转换数据:
```
String jsonString = new String(data.getBytes("ISO-8859-1"), "UTF-8");
JSONObject jsonObject = JSONObject.parseObject(jsonString);
```
阅读全文