现在的位置: 首页 > 综合 > 正文

ECM中文乱码

2013年08月04日 ⁄ 综合 ⁄ 共 1233字 ⁄ 字号 评论关闭

运行ECM的过程中发现不能输入中文,比如新建用户的中文姓名显示成乱码。看了一下论坛,找到了一个权宜的解决方案,即配置一个处理中文编码的过滤器EncodingFilter。

EncodingFilter.java:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class EncodingFilter implements Filter{
    private FilterConfig config = null;

    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException{
    if (request instanceof HttpServletRequest){
        HttpServletRequest httpreq = (HttpServletRequest) request;
        try{
            request.setCharacterEncoding("UTF-8");
        }catch (Exception e){
            config.getServletContext().log("Error setting UTF8 encoding : " + e.getMessage());
        }
    }

// Perform any other filters that are chained after this one.
// This includes calling the requested servlet!
    chain.doFilter(request, response);
    }
    public void destroy() {
    }

    public void init(FilterConfig filterConfig) {
        this.config = filterConfig;
    }

}

在exo-tomcat/conf/web.xml中配置此过滤器:

  <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>EncodingFilter</filter-class>
  </filter>
 
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

配置完成后发现表单提交的中文字符显示正确。但是在ecm portlet中,中文目录或文件名仍然有问题,要么显示错误,要么打不开,到现在还没有找到解决方案。

抱歉!评论已关闭.