首页 文章

Spring RestController生成charset = UTF-8

提问于
浏览
3

自从更新到最新版本的Spring-Boot(1.4.1)后,我注意到在我的RestControllers中,即使我明确地将生成的媒体类型设置为“application / json”,它现在正在生成“application / json; charset” = UTF-8"

控制器:

@RestController
@RequestMapping(value = "/api/1/accounts", consumes = "application/json", produces = "application/json")
public class AccountController {
.....

响应 Headers

Content-Type →application/json;charset=UTF-8

现在是否在其他地方配置了覆盖RequestMapping设置?

1 回答

  • 7

    根据OrangeDog上面的注释,MappingJackson2HttpMessageConverter处理字符集 . 如果在消息中没有指定(即通过RequestMapping生成配置),则最近已更新以添加默认charSet

    这可以通过实现下面的bean并将charSet设置为null来覆盖:

    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        jsonConverter.setObjectMapper(objectMapper);
        jsonConverter.setDefaultCharset(null);
        return jsonConverter;
    }
    

相关问题