SpringBoot使用FastJson,并解决中文乱码的问题

Springboot使用FastJson后,接口返回中文乱码的问题解决(两种解决方式)

方法一

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

@Configuration
public class MySpringMvcConfig extends WebMvcConfigurerAdapter{

    /**
     * 消息转换器
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        //1.定义converter消息转换对象
        FastJsonHttpMessageConverter fastconverter = new FastJsonHttpMessageConverter();

        //2.添加fastJson配置信息,比如:是否格式化返回的json数据
        FastJsonConfig fastJsonconfig = new FastJsonConfig();
        fastJsonconfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

        //3.解决乱码问题。定义响应的MIME类型,设置响应的content-type为application/json;charset=UTF-8
        List<MediaType> fastMediaType = new ArrayList<>();
        fastMediaType.add(MediaType.APPLICATION_JSON_UTF8);

        //4.converter消息转换器添加配置信息
        fastconverter.setSupportedMediaTypes(fastMediaType);
        fastconverter.setFastJsonConfig(fastJsonconfig);
        converters.add(fastconverter);
    }

}

方法二

在具体的方法上添加“produces = MediaType.APPLICATION_JSON_UTF8_VALUE”

@GetMapping(value = Url.XXX, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)

参考文献:https://blog.csdn.net/qq_38288606/article/details/78673336

原文地址:https://www.cnblogs.com/wps54213/p/12520384.html

时间: 2024-11-05 18:56:59

SpringBoot使用FastJson,并解决中文乱码的问题的相关文章

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来

linux基础-zabbix解决中文乱码问题 (因为版本太新的问题,没有测试成功)

zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [[email protected] ~]# cd /var/www/html/zabbix/fonts/ [[email protected] fonts]# rz -yrz waiting to receive.???a? zmodem ′???£ °′ Ctrl+C ???£??′?? msyh.ttf...

解决中文乱码过滤器

解决中文乱码过滤器 import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi

【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问题的可能有很多,别人的解决方案也许并不适合自己. 那先看看问题出现在哪了,报错如下: 发现的确是编码错误, 16进制的错误提示(\xF0\x9F\x94\xA5\x

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

HttpServletRequest解决中文乱码的问题

HTTP请求有get和post,这两中方式解决中文乱码的方式如下: 1.Post方式请求 //这句话是设置post请求体的编码为utf-8 request.setCharacterEncoding("utf-8");//获取请求参数 request.getParameter("username"); 2.Get方式请求 new String(request.getParameter("username").getBytes("ISO-8

Android--字符串和16进制相互转化(解决中文乱码)

import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. * -----------16进制和字符串互转--------- * ------------解决中文乱码问题--------- */ public class StringToSixthUtils { private static String hexString = "0123456789abcdef"; /* * 将字

centos7命令行解决中文乱码

参考了一些网上的资料 -----------------版本信息 [[email protected] ~]$ cat /etc/redhat-release  CentOS Linux release 7.0.1406 (Core)  [[email protected] ~]$ uname -m x86_64 [[email protected] ~]$ uname -r 3.10.0-123.el7.x86_64 [[email protected] ~]$ uname -a Linux 

SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】

配置web.xml(struts2的过滤器.spring监听器.解决Hibernate延迟加载问题的过滤器.解决中文乱码的过滤器) <!-- 解决中文乱码问题 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-c