You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

POST请求传特殊字符至RequestBody遇HttpMessageNotReadableException问题

问题分析

你遇到的HttpMessageNotReadableException是因为请求体中的\b(退格符)属于ASCII控制字符,Spring默认的Jackson JSON解析器对这类字符处理较为严格,导致解析失败。虽然\b是JSON规范允许的转义序列,但Jackson默认配置会拒绝包含这类控制字符的请求内容。

解决方案

有两种可行的处理方式:

1. 配置Jackson允许控制字符

通过自定义Jackson的ObjectMapper,开启允许未转义控制字符的特性,让解析器正确处理这类特殊字符:

@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        // 允许JSON中包含未转义的控制字符
        mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
        return mapper;
    }
}

该配置全局生效,所有通过@RequestBody解析的JSON请求都能处理控制字符。

2. 使用Unicode转义序列代替原始控制字符

将\b替换为对应的Unicode转义序列\u0008,修改后的请求体如下:

{
    "name": "\u0008Color",
    "displayName": "\u0008Color",
    "position": 6
}

这种方式无需修改后端配置,直接在请求体中用Unicode编码表示特殊控制字符,几乎所有JSON解析器都能正确识别这类转义序列。

注意事项
  • 若业务场景频繁需要处理这类特殊控制字符,推荐使用第一种全局配置方式;
  • 若仅个别请求需要传递特殊字符,第二种Unicode转义方式更轻量,无需改动后端代码。

内容的提问来源于stack exchange,提问作者Kira Sign

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:17:18