用工具将中文转换为Unicode编码
"\u0202"这种类型
jdk中有这种工具

解决方案 »

  1.   

    凡是string的字符,你都转码一次
    <%
    String title="测试";
    out.println(new String(title.getBytes(),"ISO-8859-1")+"<br>");
      out.println(new String(title.getBytes(),"GBK")+"<br>");
      out.println(new String(title.getBytes("ISO-8859-1"),"GB2312")+"<br>");
      out.println(new String(title.getBytes("GB2312"),"ISO-8859-1")+"<br>");
      out.println(new String(title.getBytes("ISO-8859-1"))+"<br>");
      out.println(new String(title.getBytes("GBK"))+"<br>");
      
      out.println("------------------<br>");
      out.println(new String(title.getBytes("UTF-8"),"ISO-8859-1")+"<br>");
      out.println(new String(title.getBytes("UTF-8"),"GBK")+"<br>");
      out.println(new String(title.getBytes(),"UTF-8")+"<br>");
      out.println(new String(title.getBytes("GB2312"),"UTF-8")+"<br>");
      out.println(new String(title.getBytes("ISO-8859-1"),"UTF-8")+"<br>");
      out.println(new String(title.getBytes("UTF-8"))+"<br>");
    %>总会有对的。
      

  2.   

    最简单最快捷的办法是把mysql的默认字符集改成与网页用的字符集。
      

  3.   

    关键是插入数库之前的sql语句取得正确的字符,可是一执行executeQuery后,数据库里就得到的是乱码
      

  4.   

    String str = '测试';
    str = new String(str.getBytes("utf-8"),"ISO8859_1");
    utf-8,是你现在程序中的字符集
    ISO8859_1是你MYSQL的defaut encoding
    如果你对应的字符集不是这个,那你改一下就可以了。
      

  5.   

    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
       String url ="jdbc:mysql://192.168.1.61/AddrBook_database?user=heyi&password=123&useUnicode=true&characterEncoding=gb2312"; 
       Connection conn= DriverManager.getConnection(url);  
       //取值
       String username=request.getParameter("username");
       username= new String(username.getBytes("ISO8859-1"),"GBK");这样改一下
      

  6.   

    //***************************************************
    //名称:ChangeCode
    //功能:转换指定字符串的字符集(字符编码)
    //输入:strSource: 要转换的字符串; strCodeFrom: 源字符集; strCodeTo: 目的字符集
    //输出:
    //返回:转换之后的字符串
    //***************************************************
    public String ChangeCode(String strSource, String strCodeFrom, String strCodeTo)
    {
    byte[] baTemp = null;
    try
    {
    baTemp = strSource.getBytes (strCodeFrom);
    strSource = new String (baTemp,strCodeTo);
    }
    catch (Exception e)
    {
    return (e.toString ());
    }

    return (strSource);
    }
      

  7.   

    ChangeCode (aStrSql, "8859_1", "cp850");
    取出数据的时候转换一下亥集!!
      

  8.   

    试试我这个行不?<%@ page import="java.sql.*"%><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url="jdbc:odbc:JDBCShop";
    Connection con=DriverManager.getConnection(url);
    PreparedStatement stmt = con.prepareStatement("insert into hacker(name,price) values(?,?)");
    String name=request.getParameter("name");
    String price=request.getParameter("price");
    stmt.setString(1,name);
    stmt.setString(2,price);
    stmt.executeUpdate();Statement stm=con.createStatement();
    String sql="select * from hacker";
    ResultSet rs=stm.executeQuery(sql);
    %>
    <html>
    <body>
    <%while(rs.next())
    {String Name=new String(rs.getString("name").getBytes("8859_2"));
    int Price=rs.getInt("price");
    int id=rs.getInt("id");
    %>
    <a href=1.htm?ID=<%=id%>> <%=Name%> </a><%=Price%>
    <%
    out.println("<br>");
    }%>
    </body>
    </html>
      

  9.   

    con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/citic?user=root&password=&useUnicode=true&characterEncoding=utf-8");//进行数据池连接将utf-8改成gb2312试一试!
      

  10.   

    <%@ page language="java" contentType="text/html;charset=utf-8" import="java.sql.*"%>
    <html>
    <head>
    <title>Test Tomcat Connection Pool</title>
    </head>
    <body>
    <%
    try{
    Connection con = null;
       Class.forName("org.gjt.mm.mysql.Driver").newInstance();//载入驱动程序
       con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/citic?user=root&password=&useUnicode=true&characterEncoding=utf-8");//进行数据池连接
       Statement statement = con.createStatement();//创建sql语句对象
       statement.executeQuery("insert into user (login_id,user_name,email,company_name,password,hkid_passport,admin_user) values ('d12a12',new String(str.getBytes("utf-8"),"ISO8859_1"),'[email protected]','','123','','N')");//执行SQL语句之后的结果赋给RS对象
    String pd=new String(); }catch(Exception ex){
    out.println(ex.toString());
    }
    %>
    </body>
    </html>这样试试看
      

  11.   

    <%@ page language="java" contentType="text/html;charset=utf-8" import="java.sql.*"%>
    <html>
    <head>
    <title>Test Tomcat Connection Pool</title>
    </head>
    <body>
    <%
    try{
    Connection con = null;
       Class.forName("org.gjt.mm.mysql.Driver").newInstance();//载入驱动程序
       con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/citic?user=root&password=&useUnicode=true&characterEncoding=utf-8");//进行数据池连接
       Statement statement = con.createStatement();//创建sql语句对象
       statement.executeQuery("insert into user (login_id,user_name,email,company_name,password,hkid_passport,admin_user) values ('d12a12',new String('测试'.getBytes("utf-8"),"ISO8859_1"),'[email protected]','','123','','N')");//执行SQL语句之后的结果赋给RS对象
    String pd=new String(); }catch(Exception ex){
    out.println(ex.toString());
    }
    %>
    </body>
    </html>这样试试看
      

  12.   

    <%@ page language="java" contentType="text/html;charset=utf-8" import="java.sql.*"%>
    <html>
    <head>
    <title>Test Tomcat Connection Pool</title>
    </head>
    <body>
    <%
    try{
    Connection con = null;
       Class.forName("org.gjt.mm.mysql.Driver").newInstance();//载入驱动程序
       con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/citic?user=root&password=&useUnicode=true&characterEncoding=utf-8");//进行数据池连接
       Statement statement = con.createStatement();//创建sql语句对象
       statement.executeQuery("insert into user (login_id,user_name,email,company_name,password,hkid_passport,admin_user) values ('d12a12',new String('测试'.getBytes('utf-8'),'ISO8859_1'),'[email protected]','','123','','N')");//执行SQL语句之后的结果赋给RS对象
    String pd=new String(); }catch(Exception ex){
    out.println(ex.toString());
    }
    %>
    </body>
    </html>对不起,刚才一直没有注意“与‘的区别
    假如还不行你把
    new String('测试'.getBytes('utf-8'),'ISO8859_1');
    用一个字符串变量代替写
    祝你好运,如果还有问题请联系
      

  13.   

    to 楼主:
    这个问题我前几天也遇到了,我用的是jboss,提交汉字进行转码("8859_1")的话,jboss后台显示正常但mysql中是乱码,后来无意中发现,不转码的话,虽然jboss控制台显示乱码,但是mysql中显示的却正常。