setCharacterEncoding 失效问题

发布于 2021-11-29 11:38:38 字数 901 浏览 878 评论 5

@jfinal

背景是用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

德意的啸 2021-12-01 19:18:16

回复
找到问题了 项目里面用到了AjaxAnywhere,如果把AjaxAnywhere放在JFinalFilter之前就会出现乱码, 放在JFinalFilter之后,就不会出现乱码 (200字限制,接下面)

半世蒼涼 2021-12-01 18:29:47

回复
但是 AjaxAnywhere 就用了不, 提示AjaxAnywhere error:content-type in not text/xml:[text/html;charset=UTF-8]

眉黛浅 2021-12-01 14:09:54

回复
去掉 AjaxAnywhere 的 Filter 中的 setEncoding(...) 方法即可

各自安好 2021-12-01 12:49:56

回复
感谢。看了ajaxanywhere源码,里面在filter之前使用了request.getParameter 导致后面setCharacterEncoding失效

瀞厅☆埖开 2021-12-01 11:54:02

回复
那么可以将 ajaxAnywhere 的 filter 放在 jfinal filer 之后,然后为他们设置不同的 filter mapping

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文