一、在返回中的头部信息中指定字符集为UTF-8
response.setCharacterEncoding("utf-8");
二、在API上指定produces
@RequestMapping(value = "/hello", produces = "application/json; charset=UTF-8")
三、全局配置字符编码
package com.reachauto.hkr.common.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.reachauto.hkr.common.feign.FeignInterceptor;
import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.List;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(resourceConverter());
converters.add(jacksonConverter());
converters.add(stringConverter());
}
@Bean
MappingJackson2HttpMessageConverter jacksonConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = ObjectMapperHolder.getInstance().getMapper();
converter.setObjectMapper(mapper);
return converter;
}
@Bean
StringHttpMessageConverter stringConverter() {
return new StringHttpMessageConverter();
}
@Bean
ResourceHttpMessageConverter resourceConverter() {
return new ResourceHttpMessageConverter();
}
@Bean
public RequestInterceptor requestTokenBearerInterceptor() {
return new FeignInterceptor();
}
}