【JavaWeb】POST方式请求乱码

一、乱码分析

  • POST请求将参数放在请求体中进行发送
  • 请求体使用的字符集受到了 <meta charset="字符集"/> 的影响
  • Tomcat10.1.7 默认使用UTF-8字符集对请求体进行解析
  • 如果请求体的URL转码和Tomcat的请求体解析编码不一致,就容易出现乱码

二、POST方式乱码演示

POST请求请求体受到了 <meta charset="字符集"/> 的影响

1682387258428

请求体中,将GBK数据进行 URL编码

1682387349916

后端默认使用UTF-8解析请求体,出现字符集不一致,导致乱码

1682387412704

如果修改 conf/server.xmlConnecter 添加 URIEncoding="GBK",是没用的,因为这个设置的是Tomcat的URI解析字符集,此时参数并不是再以URI的方式提交了,而是放到请求体里了。


二、乱码解决

方式1

请求时,使用UTF-8字符集提交请求体 (推荐)

1682387836615 1682387857587

方式2

Tomcat10默认以UTF-8为请求体的解码。

后端在获取参数前,设置解析请求体使用的字符集和请求发送时使用的字符集一致 (不推荐)

PS:这个需要在getParameter之前先设置

1682388026978
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值