tomcat的server.xml里面配置URIEncoding的问题,导致post和get访问编码不一致

本文探讨了在使用GET方式提交数据时出现乱码的原因及解决方案。通过调整Tomcat配置文件server.xml中的URIEncoding参数,成功解决了中文乱码问题。

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

原来的发送短信的包都是好用的,post方式和get方式提交数据都能到后台正确不乱码,因为后台用

content = new String(content.getBytes("ISO8859-1"),"GBK");

 转好了。

最近发现用post方式提交的正常,用IE地址栏里直接用url传递参数就是乱码的。

到服务代码里加了输出在转码前和转码后分别输出,发现,get请求的时候不用转就正常的,这肯定是在这之前有转码的地方了,到tomcat的server.xml里一看,有人加了如下代码(红色)

<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK"/>

(1) tomcat服务器
对于tomcat服务器,该文件是server.xml
<Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="150" connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK"/>
URIEncoding告诉服务器servlet解码URL时采用的编码。

<Connector port="8080" ... useBodyEncodingForURI="true" />
useBodyEncodingForURI告诉服务器解码URL时候需要采用request body指定的编码。

 

去掉后一切正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值