一、乱码分析
- POST请求将参数放在请求体中进行发送
- 请求体使用的字符集受到了
<meta charset="字符集"/>
的影响 - Tomcat10.1.7 默认使用UTF-8字符集对请求体进行解析
- 如果请求体的URL转码和Tomcat的请求体解析编码不一致,就容易出现乱码
二、POST方式乱码演示
POST请求请求体受到了 <meta charset="字符集"/>
的影响
请求体中,将GBK数据进行 URL编码
后端默认使用UTF-8解析请求体,出现字符集不一致,导致乱码
如果修改 conf/server.xml
中 Connecter
添加 URIEncoding="GBK"
,是没用的,因为这个设置的是Tomcat的URI解析字符集,此时参数并不是再以URI的方式提交了,而是放到请求体里了。
二、乱码解决
方式1
请求时,使用UTF-8字符集提交请求体 (推荐)
方式2
Tomcat10默认以UTF-8为请求体的解码。
后端在获取参数前,设置解析请求体使用的字符集和请求发送时使用的字符集一致 (不推荐)
PS:这个需要在getParameter之前先设置