Tomcat 编码小结

很多朋友在开发jsp的时候就会出现乱码问题,我参与过一些项目,做了一点关于这方面编码的总结

 

不知道jsp开发都有没有注意到一个问题:使用get和post两种方式提交form时使用的编码规则并不一定相同

 

从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,
对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的ISO-8859-1编码。
对于GET请求,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用tomcat URIEncoding设置编码,默认为ISO-8859-1,即request.setCharacterEncoding方法无效。

 

在配置文件Server.xml的Connector标签中加入“useBodyEncodingForURI ="true"”,这个属性主要是让Tomcat 5.x在GET和POST方式使用相同的字符集。如果这样做仍不能解决问题,您可以尝试再加入另一个属性“URIEncoding =UTF-8”

在 Tomcat 的 Server.xml 配置中,通过 GET 传送的 ?a=xxxxxx 这种 url 的编码是可以单独配置的(URIEncoding),通过 POST 传送的数据采用 request.setCharacterEncoding 来设置

 

在jsp页面中,contentType="text/html;charset=UTF-8" 指定的编码用于编译执行jsp_.class之后向浏览器输出的编码,pageEncoding 属性是指定读取jsp文件时的编码方案。如果这里的 pageEncoding ="GBK",那么你查看文件属性时,一定会看到此文件被保存的编码是GBK,同样它也会按GBK解码读取该文件!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值