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

来源:互联网 发布:淘宝旧版本下载2016 编辑:程序博客网 时间:2024/04/28 02:48
 

相信搞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的值。

 

2.post传数据时,使用的编码方式和post是不同的。post方式依据的是什么编码来提交数据呢?还有待查资料。


参考了apache的资料:http://wiki.apache.org/tomcat/FAQ/CharacterEncoding

补充:刚测试了下,可以排除post的编码和

<meta http-equiv="content-type" content="text/html;charset=xxx"> 中 chartset有关。

我刚用的charset=gb2312,提交"春节"两个字,发现提交给后台的是:name=%E6%98%A5%E8%8A%82 ,  

这对应的是utf-8编,因为"春节"的gb2312对应的值是:%b4%ba%bd%da 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小阴唇上一个黄豆大的硬疙瘩怎么办 梦幻西游手游金币兑换上限了怎么办 手机放裤子口袋里易拔出怎么办 两个月宝宝拉肚子怎么办吃纯母乳 花王泡沫染停留时间太久怎么办 ps右下角的图层图标隐藏了怎么办 压缩包文件太大微信无法传送怎么办 一寸照片的尺寸在ps中怎么办 遇到尖酸刻薄爱数落人的领导怎么办 初中一年级的学生就不想读书怎么办 电脑上所有文件都变得很大怎么办 小孩子手被门缝夹肿了怎么办 阳台挂衣服的单杆掉下来了怎么办 九个月婴儿受凉声音变沙哑怎么办 以汉字为主题的手抄报怎么办 用惯了笔画打字打不来拼音怎么办 老条石头给淤泥弄黑怎么办 新买的沙发垫子味很大怎么办 电脑表格中删去多余框线怎么办 农村教学点招不到学生老师怎么办 wps卡死了打的东西没保存怎么办 华为手机浏览器边框颜色变了怎么办 打印机打出来的字两边少怎么办 wps表格分页时表格断了怎么办 word里的表格一页放不下怎么办 表格上红色的字不能删除怎么办 渐变区的选择框变得很大怎么办 用乐秀编辑短片后两边有边框怎么办 安卓手机相机图标没有了怎么办 三星s6不充电就死机了怎么办 三星s7通话感应器不管用了怎么办 卡贴苹果8p一直跳激活怎么办? 宝宝添了小狗添过的袋子怎么办 猫咪卡在屋顶的缝隙里怎么办 大臂的图案纹小了怎么办 双面板已经贴片还要插件后焊怎么办 黑板摔在地上有木头屑怎么办 白衣服蓝袖子漂花了怎么办 白衣服泡了一夜袖子发黄怎么办 小孩的胳膊肘关节处摔断开了怎么办 生完孩子以后奶头总有脏东西怎么办