mysql数据库不能输入中文

发布时间: 2023-11-21 13:26 阅读: 文章来源:1MUMB5198PS

解决方法一:(最重要的一种方法)

你看下my.ini,有无

[mysql]default-character-set=utf8[client]default-character-set=utf8[mysqld]default-character-set=utf8

然后建立表时,也要用(比如)

drop TABLE IF EXISTS `Company`;CREATE TABLE IF NOT EXISTS `Company`(`Cname` VARCHAR(10) NOT NULL,`Caddr` VARCHAR(100),`Ctel` VARCHAR(16))ENGINE=InnoDB DEFAULT CHARSET=UTF8;

这样就没问题。

如果是jsp要声明:

contentType="text/html;charset=gb2312"

解决方法二:

连接mysql时(无论在从mysql读还是取数据的情况),指定使用的编码方式为utf-8,具体代码如下

//装载mysql-jdbc驱动Class.forName("com.mysql.jdbc.Driver").newInstance();//连接数据库Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test? user=root&password=1&useUnicode=true&characterEncoding=utf-8" );

解决方法三:

如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换。

代码示例如下:

String name = rst.getString("name");name= new String(name.getBytes("ISO-8859-1"),"utf-8");

注:代码也可以为:

String name =new String( rst.getString("name").getBytes("ISO-8859-1"),"utf-8"));

其中rst为返回的 resultset,ISO-8859-1为mysql默认的编码方式,代码的目的是把以ISO-8859-1的编码转换为gb2312编码方式,这样强 制转换,可以解决一部分问题,如果结合方法一,应该可以解决中文乱码问题。

解决方法五:在tomcat conf 里面的web.xml里面更改:

UTFEncodingcom.founder.chenph.Util.EncodingFilter_UTF8encodingUTF-8UTFEncoding*.jspUTFEncoding*.do
•••展开全文
相关文章