数据库:MySql5.1
开发语言:JAVA
操作系统:Windows Xp
错误及解决步骤记录:
好久没有用MySql了,这两天用一下报中文插入问题,刚开始的一直以为是MySql连接字符串的问题:
jdbc:mysql://localhost:3306/imps?useUnicode=true&characterEncoding=UTF-8
将最后的参数characterEncoding的值是换了又换,如gbk、gb2312等等,结果通过页面插入的时候还是报错,我JSP页面采用的编码方式为:
<%@ page contentType="text/html;charset=UTF-8" %>
我通过MySql Client进行中文插入的时候,没有问题,可以正常插入,我又安装了MySql的GUI工具,打开其查询工具进行中文的插入,报的错居然和我通过JSP页面插入的时候报的错一样,都是不允许插入一堆什么字符等,这个时候我想是不是数据库的字符设置有问题,我通过命令:
mysql> show create table test;
+-------+------------------------------------------
--------------------------------------------------+
| Table | Create Table
|
+-------+------------------------------------------
--------------------------------------------------+
| test | CREATE TABLE `test` (
`a` int(11) DEFAULT NULL,
`b` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------
--------------------------------------------------+
1 row in set (0.00 sec)
create table test(a int,b varchar(20));
我打开MySql的配置文件${MySql_Home}/my.ini,看到其中设置的默认字符及默认建表的字符都是latinl,我将其改为utf8,然后重新启动MySql,再次采用上面的建表句,再通过命令show create table test命令查看,居然字符还是latinl,这个我就郁闷了,并且通过JSP页面及MYSQL GUI工具插入也还是报错。
我把这个表给删除掉,采用如下建表:
create table test(a int,b varchar(20)) default charset=utf8;
--转自