呵呵,从页面读来得字符串我们叫他s,那么要是想得到result(没有乱码的中文字符串)应该这样:
String result = new String(s.getBytes("iso-8851-1"),"gb2312");
注意这个方法需要try....catch
把这个result扔到数据库就行了

解决方案 »

  1.   

    啊,不好意思,是iso-8859-1,刚刚写错了,呵呵
      

  2.   

    老兄我已经写了这样的句子,还是不行
      Headstr=new String(Headstr.getBytes("ISO-8859-1"),"GBK");
      

  3.   

    ??那可就有意思了,但是我不明白你怎么用text/xml这个类型亚?你这个不是应该是jsp么?应该是text/html吧
      

  4.   

    这是一个树的递归公共jsp(用xml作中转的),以前用sqlserver一点事都没有
      

  5.   

    如果你是采用javabean做数据库连接的话还需要修改bean里的mysql连接语句
    DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=GBK");
      

  6.   

    在javabean中 我已经写成url ="jdbc:mysql:///test?useUnicode=true;characterEncoding=ISO8859_1",是不是一定要改成gbk,
    我试试,谢谢!
      

  7.   

    在第一次调用request.getParameter()前加上
    request.setCharacterEncoding("GB2312")试试
      

  8.   

    <%@ page contentType="text/xml;charset=ISO-8859-1"%> 
    <%@ page import="java.sql.*"%> 
    <%@ page import="java.net.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="DBconManager.DBConnectionManager"%>
    <% 
       String sqlstr = request.getParameter("sqlstr");       
       String Headstr = request.getParameter("ROOT");
          
       sqlstr=new String(sqlstr.getBytes("ISO-8859-1"),"gb2312");     
       Headstr=new String(Headstr.getBytes("ISO-8859-1"),"gb2312");      
       Connection conn=null;
       ResultSet rs = null;
       Statement stmt = null;
       DBConnectionManager connMag=null;   
       String id=null;
       String bh=null;   
       String name=null;
       String ssbh=null;           
     try
       {
        connMag = DBConnectionManager.getInstance();   
        conn = connMag.getConnection("test");   
       if (conn == null) 
        {
            out.println("不能获取数据库连接.");
            return;
         }   
         conn.setCatalog("test");   
         stmt = conn.createStatement();           
         out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");     
         out.println("\n<classes>\n");
         out.println(Headstr);   
        
          rs = stmt.executeQuery(sqlstr);
                   
          while (rs.next()) 
          {
            out.println("<class>");
            out.println("<ID>");
            id=rs.getString(1);              
            out.println(id);
            out.println("</ID>");
            out.println("<bh>");
            bh=rs.getString(2);
            out.println(bh);
            out.println("</bh>");
            out.println("<name>");        
            name=rs.getString(3);        
            out.println(name);        
            out.println("</name>");        
            out.println("<ssbt>");
            ssbh=rs.getString(4);                
            out.println(ssbh);
            out.println("</ssbt>");
            out.println("<havesubnode>");
            int havesubnode=rs.getInt(6);         
            out.println(havesubnode);
            out.println("</havesubnode>"); 
            out.println("</class>");
           }           
           out.println("</classes>");               
        }
        catch (Exception e)
        {
          System.err.println("Exception:"+e.getMessage());
         }
        finally
        {
          if (rs != null)
             rs.close();
          if (stmt != null)
             stmt.close();
          if (conn != null)
             conn.close();
             connMag.freeConnection("test", conn);
             conn = null;
         }                        
     %>
    下面俩个参数从别的页面传来的
    sqlstr=select * from lt_treetable order by bh
    ROOT=<class><ID>default</ID><bh>root</bh><name>论坛</name><ssbt>not</ssbt><havesubnode></havesubnode></class>javabean中是这样:
    String url ="jdbc:mysql:///test?useUnicode=true;characterEncoding=GBK";可是现在root中的中文显示不出来,
    如果改为<%@ page contentType="text/xml;charset=gb2312"%> 
    则数据库的又取不出来,
    我已经改了,还是不行。
      

  9.   

    把你的 xml 也做一下编码处理:<xml version="1.0" encoding="GB2312">
      

  10.   


    sqlstr=new String(sqlstr.getBytes("ISO-8859-1"),"gb2312");     
    Headstr=new String(Headstr.getBytes("ISO-8859-1"),"gb2312");      
    注释掉看看。
      

  11.   

    谢谢各位!按照farmer0512(风总是朝我吹) 说法已经可以了,太感谢各位了。,非常愿意和大家交朋友.