tomcat6 中get 和 post 表单提交时编码的差别

本文探讨了在使用Tomcat部署Java应用时遇到的中文乱码问题。通过实验对比GET与POST请求的不同行为,分析了乱码产生的原因,并提供了解决方案。

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

 
相信搞java的朋友都遇到过乱码问题,一般几乎都可以通过修改页面编码,tomcat编码,加过滤器等方式搞定,但为什么
 
要这么做呢?不一定每个人都明白。
 
最近弄jsp,再次遇到乱码问题,所以查了些资料,在这里记录下,以备以后可以查阅。
 
我现在用的tomcat版本是apache-tomcat-6.0.29,tomcat的配置都是默认的。
 
当我通过jsp提交数据到后台的时候,插入到数据库,发现中文是乱码,debug发现还没到数据库就已经是乱码了,这说明
 
编码的设置有问题。
 
检查了下我的jsp页面,编码只设pageencoding="utf-8" ,contenttype没有设置,表单的提交方式是get,把表单的
 
提交方式改为post试了下,发现post方式居然提交中文居然不会乱码。汗一个,难道post和get使用不同的编码提交到服
 
务器?另外还试了一种方式,根据网上的说法,把tomcat_home/conf/目录下的server.xml中connector节点中增加
 
uriencoding="utf-8" ,如果用get方式提交表单,中文也不会乱码。
 
从上面的小实验基本可以猜出,当页面用get方式提交时,用的编码是uriencoding的值,如果不设这个值的话,默认值
 
不是utf-8,后来查了下tomcat的wiki,uriencoding的默认编码是iso-8859-1,所以get方式提
 
交中文会乱码。
 
根据tomcat的wiki可以发现:
1.get方式是通过url来传数据的,默认是使用iso-8859-1的方式来编码数据。要改变get的默认编码方式可以通过修改
 
connector节点中的uriencoding的值。
 
<span style="color: #ff0000;">2.post传数据时,使用的编码方式和post是不同的。post方式依据的是什么编码来提交数据呢?还有待查资料。</span>
<div><br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值