关于request编码问题编码乱码

本文深入探讨了Tomcat服务器在中文编码设置过程中遇到的问题,包括使用spring过滤器设置编码、请求参数获取时出现的乱码现象,并通过实例展示了不同编码设置下获取参数的具体方法和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tomcat服务器的编码没有设置   设置成utf-8和gbk都试过  问题没有解决 

web.xml中设置了过滤器   
<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
<init-param> 
<param-name>forceEncoding</param-name> 
<param-value>true</param-value> 
</init-param> 
</filter> 

用的spring的过滤器 


代码中获取request对象 
获取其他参数正常  中文参数乱码 

request.queryString();  没有任何内容 


通过 
new String(request.getParameter("参数名").getBytes("iso-8859-1"), "gb2312"); 
new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"); 
new String(request.getParameter("参数名").getBytes("iso-8859-1"), "gbk"); 
new String(request.getParameter("参数名").getBytes("utf-8"), "gbk"); 
new String(request.getParameter("参数名").getBytes("utf-8"),"gb2312"); 
request.setCharacterEncoding("gbk"); 

类的编码为utf-8 

都不成功 其他该用的方法都试过 就是不可以 

不过奇怪的是  如果我把这段代码直接写在jsp页面中可以正常显示 
jsp页面的编码为gb2312     request.setCharacterEncoding("gbk");   后可以正常获取参数 

<%@ page language="java" pageEncoding="gb2312"%> 

<% 
request.setCharacterEncoding("GBK"); 
String errMsg = request.getParameter("ErrMsg"); 
%> 

这样获取参数完全正常 

实在不知道原因在哪 


另外还做了一个测试   tomcat的编码不设置  应该就是默认的iso-8859-1 

项目设置spring的中文过滤器 

action中直接写  
new String(request.getParameter("参数名").getBytes("iso-8859-1"), "gbk"); 

就可以获取正确的中文 

 

转载请注明:http://www.xujin.org 或 http://www.virgocloud.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值