现在是这样的,提交页而用的是GB2312,数据库是mysql,用的是lant7(ISO8859-1)。写入时查看过数据库,没任何问题。同时在shell下查看过数据库中文显示也正常。
  但读出的时候出显个怪问题。数据库连接我还是用8859_1,如果在JSP中设。
<%@ page contentType="text/html;charset=gb2312"%> 中文就显示乱码。但要是用
<%@ page contentType="text/html;charset=ISO8859-1"%>这时系统默认的编码是"西欧字符(ISO)",但我只要把编码在浏览器是换成GB2312时就显示中文。
谁能帮我解决一下。

解决方案 »

  1.   

    有两个办法:1。修改mysql安装文件夹下面的my.ini ,修改 default-character-set=gb2312
    2。自己加一个filter,对所有的请求进行编码转换
      

  2.   

    楼上的请问一下怎么换转呢?我花了一晚上查了部分资料还是没成功,你能把个例子嘛?
    String tt=new Srting(rs.getString("mail").getByet("GB2312"),"ISO8859-1");
      

  3.   

    给你个filter吧,自己再web.xml部署一下
    import java.io.IOException;
    import javax.servlet.*;
    //import javax.servlet.http.*;public class SetCharacterEncoding implements Filter {
    public void init(FilterConfig config){}

    public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
    throws IOException,ServletException{
    request.setCharacterEncoding("UTF-8");
    chain.doFilter(request,response);
    }

    public void destroy(){}
    }