后台返回前台JSON,页面显示乱码,页面preview不显示乱码。这个怎么解决。
首先这个不算乱码,因为这是浏览器在页面上展示返回数据时,没有获取到响应体里面的编码格式,所以按照默认编码格式渲染数据了。
前端js在获取到响应数据时,应该会按照默认的utf-8的解码格式解析数据,就像你在preview中看到的数据。具体是否是乱码,需要前端使用js代码将返回数据渲染在页面上才能看出来。
方法一:设置一下浏览器编码
方法二:在controller中的@RequestMapping中加入 produces = "application/json;charset=utf-8"
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
依赖有没有添加正确 添加这个试试
一,看看开发工具的编码,重新设置开发工具的编码试一试
二,重新设置一下浏览器的编码看看
三,重新换个浏览器看看
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
加上第一行试试
全部统一转成utf8,这个要协调前端后端,要看前端用得是什么编码,有的用gbk ,后端返回也要在http头中标记好这是什么编码类型的数据,建议后端全部改成utf8。
注意还有就是代码使用的编码类型,如果有vscode,用vscode打开项目源码,如果发现有乱码,可以点击右下角的utf8重新选择加载编码类型,等没有乱码后再点击转换为utf8。
千万不要在乱码的时候点击转换成utf8。