平台tomcat6.0,mysql5.1
这样子插入中文显示正常
    try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
    PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
    st.setString(1,"中文");
    st.execute();
    st.close();
    con.close();
    }catch(Exception e)
    {
    System.err.println(e);
    }
----------------------------------------------------------
我的javabean:
public class GetCon {
private SetBean sb;
private Connection con;
public GetCon(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
//"jdbc:mysql://localhost:3306/tidos","root",""
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
}catch(Exception e)
{
System.err.println(e);
}
}
public void setSB(SetBean s)
{
sb=s;
}
public SetBean getSB()
{
return sb;
}
public void addMessage()throws Exception
{
Statement ss=con.createStatement();
PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
st.setString(1,sb.getTitle());
st.setString(2,sb.getName());
st.setString(3,sb.getEmail());
st.setString(4,sb.getContent());
st.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
st.execute();
//st.close();
con.close();
}
}
用到bean的jsp:
<%@page language="java" import="java.util.*,java.sql.*,dd.SetBean" %>
  <jsp:useBean id="set" class="dd.SetBean" scope="page">
  <jsp:setProperty name="setbean" property="*"/>
  </jsp:useBean>
  <jsp:useBean id="con" class="dd.GetCon"/>
  <body>
 <% 
 try{ 
 con.setSB(set);  
 con.addMessage(); 
 } 
 catch(Exception e) 
 { 
 e.printStackTrace(); 
 } 
 %>
  </body>
但是这样插入就出现乱码,哪位知道请帮帮我.非常感谢.

解决方案 »

  1.   

    应该和你jsp的encoding也有关. 一般最好这样:
    1. 数据库用INNODB, characterset用UTF-8
    2. 数据库连接也用utf-8
    jdbc:mysql://localhost:3306/my_db?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8
    3. jsp/java都用UTF-8
    <%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>这样基本就没有问题了.