数据库里查询出来的中文在 table里显示成乱码,怎么解决。

解决方案 »

  1.   

    注意字符转换,如果你用的数据库为SQLServer,千万记得转换:
    return new String(str.getBytes("iso-8859-1"), "gb2312");
      

  2.   

    用的是mysql,怎么转换。
      

  3.   

    一样呀
    如:String tmp = rs.getString(1);
    tmp = new String(tmp.getBytes("iso-8859-1"), "gb2312");
      

  4.   

    如果系统是中文windows的话
    让数据库在查询或者插入语句前面先执行下面的语句
    set names 'gbk'
      

  5.   

    让数据库在查询或者插入语句前面先执行下面的语句
    set names 'gbk'
    -----------------
    怎么用,例如执行一个sql: select * from table.
    set names 'gbk'怎么放。
      

  6.   

    如果是jdbc的话,stmt.execute("set names 'gbk'");
    具体jdbc的语法不记得了,就是在select之前多执行一条不需要返回值的sql语句
      

  7.   

    如:String tmp = rs.getString(1);
    tmp = new String(tmp.getBytes("iso-8859-1"), "gb2312");
    试过,不行。
    --------------
    stmt.execute("set names 'gbk'");
    也不行。
    --------------------
    调试的时候,发现 tmp = new String(tmp.getBytes("iso-8859-1"), "gb2312")已经是乱码了;但在mysql的客户端执行sql语句则 会正常显示。