jfinal发布到tomcat上GBK的参数变成了UTF8

风声没 发布于 2015/07/12 11:53
阅读 759
收藏 0

把jfinal项目转移到tomcat上,我的项目全部都是GBK。包括页面上的charset、me.setEncoding("GBK")、和tomcat中    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding='GBK'/>

都设置了GBK,但是在传中文参数的时候获取到的是乱码,我把乱码用工具从utf-8转到GBK变成了正常中文。也就是说tomcat获取到的参数变成utf-8的编码了,不知道是不是那个地方还没设置到。

加载中
1
zigzagroad
zigzagroad
浏览器提交参数时的默认编码是UTF-8
zigzagroad
zigzagroad
一般是建议全部用UTF-8编码,避免不必要的麻烦。后端编码处理也简单,在tomcat中指定编码,或者在项目中加一个拦截器转码就可以了
风声没
确实是这个原因,我下午发现是ajax提交默认用utf转,请问你有什么好的解决方法吗?我这边需要修改的地方不少
0
JFinal
JFinal

   在 YourJFinalConfig.configConstant(Constants me) 中设置一下即可:

me.setEncoding("GBK");

   默认是 utf-8,所以需要设置,另外数据库连接 jdbcUrl 也需要设置,例如:

jdbcUrl = jdbc:mysql://127.0.0.1/jfinal_demo?characterEncoding=GBK&zeroDateTimeBehavior=convertToNull



风声没
回复 @JFinal : 主要奇怪的是获取到的是utf-8的格式,我都设置的是GBK
JFinal
JFinal
回复 @风声没 : 如果通过上面两步还不能解决乱码问题,终极解决方案是单步调试,观测一下是哪一个环境造成的乱码
风声没
就是这条 me.setEncoding("GBK")
风声没
这个地方我设置了呀
返回顶部
顶部