解決方式1:java
import java.util.ArrayList; import java.util.List; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; 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; @SpringBootApplication // 繼承 WebMvcConfigurerAdapter 用於將fastjson替換原有的jackson public class MainApplication extends WebMvcConfigurerAdapter { // 配置fastJson 用於替代jackson @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); //定義一個convert 轉換消息的對象 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2 添加fastjson 的配置信息 好比 是否要格式化 返回的json數據 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat ); fastConverter.setFastJsonConfig(fastJsonConfig); // 解決亂碼的問題 List<MediaType> fastMediaTypes = new ArrayList<>(); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(fastMediaTypes); converters.add(fastConverter); } public static void main( String[] args ) { SpringApplication.run(MainApplication.class, args); } }
解決方式2:web
在controller 的方法中 地址映射加入指定編碼格式 這個時候也中文不亂碼了 @RequestMapping(value = "/", produces = "application/json; charset=utf-8")