setCharacterEncoding 失效问题
背景是用jfinal 的时候,之前都是ajax 提交表单,但今天特殊情况,要直接用表单提交,发现乱码。
检查了一些配置
1、tomcat 设置了编码UTF8(当然,对POST 好像没关系,图个心安)
2、页面设置了
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<meta charset="UTF-8" />
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
3、项目是使用UTF-8编码
还是乱码,无果。于是乎写了个拦截器测试,如下
但是还是需要转码之后才能显示中文,请大神指示
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
回复
找到问题了 项目里面用到了AjaxAnywhere,如果把AjaxAnywhere放在JFinalFilter之前就会出现乱码, 放在JFinalFilter之后,就不会出现乱码 (200字限制,接下面)
回复
但是 AjaxAnywhere 就用了不, 提示AjaxAnywhere error:content-type in not text/xml:[text/html;charset=UTF-8]
回复
去掉 AjaxAnywhere 的 Filter 中的 setEncoding(...) 方法即可
回复
感谢。看了ajaxanywhere源码,里面在filter之前使用了request.getParameter 导致后面setCharacterEncoding失效
回复
那么可以将 ajaxAnywhere 的 filter 放在 jfinal filer 之后,然后为他们设置不同的 filter mapping