当我执行以下代码时,数据库中插入的内容是乱码。
以下是我的代码
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Db { public static void main(String[] args){
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase","root","123456");
Statement st=con.createStatement();
int a=st.executeUpdate("INSERT INTO `t_testcode` (`t_content`)VALUES ( '如果一場比賽延期或中斷');");
System.out.println(a);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}

解决方案 »

  1.   

    给表设置一下字符集,default charset=utf8;试试
      

  2.   

    Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase","root","123456"); 
    这里改成以下:
    Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8","root","123456");这里制定编码格式,尝试一下
      

  3.   

    我把
    Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8","root","123456");
    改成:
    Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydatabase?useUnicode=true&characterEncoding=gbk","root","123456"); 
    因为我的MyEclipse默认的编码是gbk.
    但是还是失败了。
    无论是读出数据,还是写入数据,只要是中文就乱码。
      

  4.   

    1.ALTER TABLE `user` DEFAULT CHARACTER SET utf8 ;
    将一个表的字符集该为utf8.
    如果不可以,改为其他字符集试试
    2.ALTER TABLE `user` CHANGE `username` `username` VARCHAR( 45 ) CHARACTER SET utf8 NOT NULL ;
    将一个表的某个字段的字符集该为utf8