一共三个文件,就是连接好了后打开MYSQL看到插入数据中文是乱码,查过资料但是没解出来,请各位帮忙了,大家能帮小弟指出具体把哪段代码改成什么样就可以显示中文,否则还是难以明白
javabean文件如下:package jspshujuku;
import java.sql.*;public class databean {
String url="jdbc:odbc:mysqldemo";
    Connection conn;
    public databean()
    {
        try
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        conn=DriverManager.getConnection(url,"root","liulei");        }
        catch(Exception ex)
                {
                ex.printStackTrace();
        }
    }
    public Connection getconn()
    {
        return conn;
    }
}创建数据库代码文件如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>
tablecreate
</title>
</head>
<jsp:useBean id="databeanId" scope="session" class="jspshujuku.databean" />
<jsp:setProperty name="databeanId" property="*" />
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
Connection conn=databeanId.getconn();
Statement stmt=conn.createStatement();
String sql="create table tabledemo1("+
"id int primary key auto_increment,"+
"title varchar(100),"+
"content text)"+
"ENGINE=InnoDB DEFAULT CHARSET=gbk;";
try
{
stmt.execute(sql);
out.println("成功穿件表");
}
catch(Exception ex)
{
  out.println("数据表已经穿件");
}%>
</body>
</html>
插入数据库代码如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>
insertdemo
</title>
</head>
<body bgcolor="#ffffff">
<jsp:useBean id="databean" scope="session" class="jspshujuku.databean">
</jsp:useBean>
<h3>插入数据</h3><%
Connection conn=databean.getconn();
Statement stmt=conn.createStatement();
for(int i=1;i<7;i++)
{  String insertstr="insert into tabledemo1(title,content) values('记录"+i+"','内容"+i+"')";
  try
  {
  stmt.execute(insertstr);
out.println("<p>成功插入记录"+i+".</p>");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}  %>
</body>
</html>

解决方案 »

  1.   

    大致看了看 通篇没涉及编码转换如:insertstr=new String(insertstr.getBytes("ISO-8859-1"),"GB2312");
    试试?反正就是在各种编码之间折腾来、折腾去=jsp
      

  2.   

    不对,在MYSQL中还是乱码
      

  3.   

    mysql的数据库 指定的是什么编码呢 mysql又是什么版本呢
      

  4.   

    Connection conn=databean.getconn();
    Statement stmt=conn.createStatement();
    String  updatestr="update tabledemo set content='似的发生12' where id=5";
    out.println(updatestr);
    updatestr=new String(updatestr.getBytes("GBK"),"GBK");
      

  5.   

    是4.1.20
    上面语句的在JSP输出结果是
    update tabledemo set content='似的发生12' where id=5 update tabledemo set content='似的发生12' where id=5 成功更新记录很正常,但是到数据库就是乱码了
      

  6.   

    Field    Type          Collation          Null    Key     Default  Extra           Privileges                       Comment
    -------  ------------  -----------------  ------  ------  -------  --------------  -------------------------------  -------
    id       int(11)       NULL                       PRI     (NULL)   auto_increment  select,insert,update,references         
    title    varchar(100)  gb2312_chinese_ci  YES             (NULL)                   select,insert,update,references         
    content  text          gb2312_chinese_ci  YES             (NULL)                   select,insert,update,references         /*Index Information For - mysqldemo.tabledemo*/
    -----------------------------------------------Table      Non_unique  Key_name  Seq_in_index  Column_name  Collation  Cardinality  Sub_part  Packed  Null    Index_type  Comment
    ---------  ----------  --------  ------------  -----------  ---------  -----------  --------  ------  ------  ----------  -------
    tabledemo           0  PRIMARY              1  id           A                    5    (NULL)  (NULL)          BTREE              /*DDL Information For - mysqldemo.tabledemo*/
    ---------------------------------------------Table      Create Table                             
    ---------  -----------------------------------------
    tabledemo  CREATE TABLE `tabledemo` (               
                 `id` int(11) NOT NULL auto_increment,  
                 `title` varchar(100) default NULL,     
                 `content` text,                        
                 PRIMARY KEY  (`id`)                    
               ) ENGINE=InnoDB DEFAULT CHARSET=gb2312
      

  7.   


    改一下mysql database的字符集呢ALTER DATABASE db_name
     DEFAULT CHARACTER SET gb2312  
     DEFAULT COLLATE gb2312
      

  8.   

    另:
    建议你改用 com.mysql.jdbc.driver的方式我并没用过jdbc-odbc的方式 ^_*