sitemesh+struts2+weblogic9.2中文乱码问题

使用strtus2开发一个项目,使用了sitemesh。页面全部使用UTF-8编码,可是在经过sitemesh装饰后会发现中文都成乱码(在weblogic9.2下跑)。网上找了很多资料都没有合适的能解决这个问题的。后来研究了sitemesh的源码,终于发现问题所在。
sitemesh在处理编码时会使用系统的编码,com.opensymphony.module.sitemesh.filter.TextEncoder文件中,
private static final String DEFAULT_ENCODING = System.getProperty("file.encoding");
    private static final boolean JDK14 =
            System.getProperty("java.version").startsWith("1.4")
            || System.getProperty("java.version").startsWith("1.5");

    public char[] encode(byte[] data, String encoding) throws IOException {
        if (encoding == null) {
            encoding = DEFAULT_ENCODING;
        }
        //encoding = "UTF-8";
        if (JDK14) {
            return get14Buffer(data, encoding);
        } else {
            return get13Buffer(data, encoding);
        }
    }

问题根源找到了,怎么改就是自己的事情了。确保在进入sitemesh之前设定系统编码即可。呵呵

你可能感兴趣的:(weblogic)