实际项目中遇到的问题就是多,说一个mysql的中文乱码问题,是一个学员提出的,汤老师帮助解决了,我在数据库中还没有插入过中文,还真没有发现这一问题,我试了一下我的程序,发现也有这个问题,就是对数据库表的某一字段插入中文,到数据库中去看,结果全是“?”,这自然是编码的问题。在编码问题解决中,一个重要的思想就是,用什么编码集编码,就要用什么编码集解码。我就按照汤老师解决问题的思路进行解决。
[color=red]首先,在mysql客户端输入status命令[/color]
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
这就找到了问题的所在,全都是 latin1,肯定不能进行正确的中文编码,
[color=red]可以在mysql server文件夹中的my.ini文件中,对他们进行设置
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=utf8
default-storage-engine=innodb
重启mysql[/color]之后就可以看到
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
我再对数据库插入中文,程序报错,sqlException,could not insert,而插入英文没有问题,可以判断这还是数据库的问题,
可以使用show create table tablename;命令,
可以看到我要插入的字段后面显示character set latin1;看来还要对表中字段进行修改,在mysql query browser中的表上可以选择edit table ,双击该字段 再选择Column details,可以看到有一下拉列表框clumn Charset 选择utf8即可。
在一个类的编写中,如果方法体暂时不知道该如何写,就在方法里头 写一句throws new UnsupportedOperateException。 相当于做个标记,在其他类中调用它时,通过异常就会知道这个方法还没有写代码。
[color=red]首先,在mysql客户端输入status命令[/color]
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
这就找到了问题的所在,全都是 latin1,肯定不能进行正确的中文编码,
[color=red]可以在mysql server文件夹中的my.ini文件中,对他们进行设置
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=utf8
default-storage-engine=innodb
重启mysql[/color]之后就可以看到
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
我再对数据库插入中文,程序报错,sqlException,could not insert,而插入英文没有问题,可以判断这还是数据库的问题,
可以使用show create table tablename;命令,
可以看到我要插入的字段后面显示character set latin1;看来还要对表中字段进行修改,在mysql query browser中的表上可以选择edit table ,双击该字段 再选择Column details,可以看到有一下拉列表框clumn Charset 选择utf8即可。
在一个类的编写中,如果方法体暂时不知道该如何写,就在方法里头 写一句throws new UnsupportedOperateException。 相当于做个标记,在其他类中调用它时,通过异常就会知道这个方法还没有写代码。