尝试一下在
“DataOutputStream out = new DataOutputStream(response.getOutputStream());”
之前先设置对该流对象的处理字:
    response.setContentType("text/html;charset=gb2312")

解决方案 »

  1.   

    UTF-8 格式的文件,在页面上显示是会出现乱码的,要GBK或GB2312才行。
    具体办法我也没找到,不过我们使用propertys文件标签进行中英文转换。
    期待其他人给各更好的办法。
      

  2.   

    页面的编码要用UTF-8
    (要前后台都统一使用一种编码;才不会是乱码。)
    注意:如果你的数据库中的数据编码不是UTF-8;请将其转化成UTF-8编码就可以了。
    如果不想改变数据库中数据原有的编码:可以在读取数据时转化成UTF-8编码;写入数据时将UTF-8编码数据转换成数据库中数据的编码,就可以了。转码方法:new String(data.getBytes("gb2312"),"UTF-8");new String(data.getBytes("UTF-8"),"gb2312");
    <%@ page contentType="text/html; charset=UTF-8" errorPage="/errors/error.jsp"%>
    public class EncodingFilter implements Filter {
        Logger log = Logger.getLogger(HibernateFilter.class);
        private String encode = "UTF-8";    public void init(FilterConfig config) {
            this.encode = config.getInitParameter("encode");
        }    public void doFilter(ServletRequest request, ServletResponse response,
                             FilterChain chain) {
            try {
                request.setCharacterEncoding(this.encode);
                response.setContentType("text/html;charset=" + encode);
                chain.doFilter(request, response);
            } catch (Exception e) {
                log.error("Error in do filter." + e);
                e.printStackTrace();
            } finally {
                try {
                    HibernateSessionFactory.closeSession();
                } catch (Exception ex) {
                    log.error("Error in closing session.", ex);
                }
            }
        }    public void destroy() {
        }
    }