后台获取requestbody的中文数据时被浏览器解析的解决方法

博客内容讲述了在Web开发中遇到的一个问题,即POST请求的中文数据在后台被浏览器错误解析导致乱码。作者通过检查web.xml的CharacterEncodingFilter排除了过滤器配置问题,并发现乱码问题可能出现在前端提交到后台的数据解析阶段。为了解决这个问题,博主使用了`java.net.URLDecoder.decode()`方法对请求体进行重新编码,将UTF-8编码的请求体正确还原,从而成功解决了中文乱码的问题。

问题描述
在web.xml文件中已经通过CharacterEncodingFilter过滤器处理了中文乱码,不是乱码问题,推测出应该是前台通过 post 提交数据后,后台读取到的requestbody中文被浏览器解析了

浏览器中的请求体
在这里插入图片描述

后台获取的信息
在这里插入图片描述

解决方法

requestBody=java.net.URLDecoder.decode(requestBody, “UTF-8”);

通过该方法重新编码为UTF-8,注意抛出异常

	@RequestMapping("/testRequestBody")
    public String testRequestBody(@RequestBody String requestBody) throws UnsupportedEncodingException {
        String requestBody_decode = URLDecoder.decode(requestBody, "UTF-8");
        System.out.println("requestBody:"+requestBody_decode);
        return "success";
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值