这个问题问过好多次的了,看看前面的就知道了。
在sort=rs.getString("sort");
后面加上
sort = new String(sort.getBytes("iso-8859-1"),"GB2312");

解决方案 »

  1.   

    其实你也可以把要写入数据库的东西编码为utf
    读出的时候再重新转换一下编码。这样大概更规范,操作稍微复杂一点而已。
      

  2.   

    http://www.asiastar.com/asiastar/index.jsp我代码修改了..还是不行啊...
      

  3.   

    天天的办法我早上都试过了,不知道为什么,还不是成功..
    数据库是access
      

  4.   

    没有用过access做数据库,用mysql和oracle都是可以的。那大概access里面不是以iso-8859-1编码的。那你只有试试第二种,不过转换的函数我暂时不记得了。转成unicode存,读出以后再转成gb2312
      

  5.   

    怎么说也是一个顶级域名的网站了,为什么还用ACCESS做数据库?
    你不怕哪天生意好一下子就crash了?
      

  6.   

    一楼的办法肯定可以哟!access我很早以前就用过,是可以的,我想你看看是不是你的access有点问题,还是什么原因,要不你把一个页面的代码都发上来看看
      

  7.   

    您的第一个字段内容为: 您的第二个字段内容为: 
    aaa  11  oop  
    111  ??????  
    123  ????  
    123  ????  
    123  ??????  
    数据库操作成功,恭喜你 
    上面是我用MySQL的一个例子,乱码部分是用了[天天]的办法..
    下面是代码:
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <%@ page import="com.mysql.jdbc.Driver"%>
    <html> 
    <body> 
    <%!
    String secondString;
    %>
    <%
    //Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    Class.forName("com.mysql.jdbc.Driver").newInstance();//Class.forName("jdbc-mysql.jar").newInstance(); 
    String url ="jdbc:mysql://127.0.0.1:3306/test?user=root&password=";
    Connection conn= DriverManager.getConnection(url); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from yuting"; 
    ResultSet rs=stmt.executeQuery(sql); %>
    <table><tr><td>您的第一个字段内容为:</td>
               <td>您的第二个字段内容为:</td></tr>
    <%
    out.print("aaa");
    while(rs.next()) {%> 
    <tr><td>
    <%=rs.getString(1)%> </td><td>
    <%
    secondString=rs.getString(2); secondString = new String(secondString.getBytes("iso-8859-1"),"GB2312");
     out.println(secondString);
    %> </td></tr>
    <%}%> 
    </table>
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body>
      

  8.   

    是这样的.在我自己机器上是全部都可以的[access,MySQL],没有出现过读取数据库字符显示乱码问题。但在我上传到http://www.asiastar.com/asiastar/index.jsp 上面就不正常了。。
    怎么会这样的呢。
      

  9.   

    会不会是你上传以后,服务器对于请求取的的缓存里的index.jsp的编译后东西,就是说实际上没有更新?一下子想不出来你出错的原因。
      

  10.   

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>你的网站上的源代码是这样的。
    根本就没有解析出charset嘛。如果是这个原因..........,你真是冤枉了。
      

  11.   

    建议你使用unicode存数据库
    Charset cs = Charset.ForName("GB2312");
    写入数据库时:
    String toWrite = new String(cs.decode(ByteBuffer 待写入).array());读出数据库时:
    String readFromDB = new String(cs.encode(CharBuffer 读出的数据).array());麻烦一点的就是类型转换。但是应该不会出问题。我没有在非中文操作系统上处理编码问题,所以不知道是不是非中文操作系统的原因。
    不过用了unicode应该不会有问题了。
      

  12.   

    String str 为数据库里读出的串
    String result = new String(str.getByte("iso8859_1"));