new String(rs.getString(1).getBytes("iso-8859-1"), "GBK")试试

解决方案 »

  1.   

    String name= new String (request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
      

  2.   

    输出显示<%@ page contentType="text/html;charset=GB2312"%>.
    当你插入数据到数据库时先new String(s.getBytes("ISO8859_1"), "gb2312");
      

  3.   

    是不是保存的数据有问题?执行插入数据库操作的页面要加上:request.setCharacterEncoding("GBK"),然后再用request.getParameter("fieldName")获取提交的域值,再将域值插入数据库。
    如果不是保存的数据有问题,那可能是jsp页面的编码问题了,加上这句看看:
    <%@ page contentType="text/html;charset=GBK" %>
      

  4.   

    你是把数据用GBK的形式存入数据库,那读出来的时候要用GBK解码,而不是ISO-8859-1
    所以new String(rs.getString(1).getBytes("gb2312"),"ISO-8859-1")就可以啦。同时XavierRuan(泽维尔),说的对,入库时才是你写的那句话。出库时要返过来。
      

  5.   

    这是常见的中文问题,在网上找找会有很相关的信息。
    先检查你的问题出在那,
       数据库中是不是乱码?
       是不是在jsp中没有写<%@ page contentType="text/html;charset=GB2312"%>和<meta http-equiv="Content-Type" content="text/html; charset=gb2312">?
       是不是编码时转错了?等等
    多测试就会明白问题出在那。
       
      

  6.   

    非常感谢  yulchina() 。按你说的方法,中了。
      

  7.   

    刚刚看错了, yulchina() 的方法也不行。我用    <%=new String(rs.getBytes(1), "gb2312")%>就正常显示中文了。终于解决了一个困扰已久的问题。
      

  8.   

    原来只要
        <%@ page contentType="text/html;charset=GB2312"%>
    就可以了。感谢大家。