用JAVA插入到mysql中出现乱码是什么原因?
我用Hibernate来保存数据到mysql中,但是插入中文出现乱码,不知道要如何解决,但我把mysql安装的时候是默认字体为gb2321,在mysql中直接插入中文则不...
我用Hibernate来保存数据到mysql中,但是插入中文出现乱码,不知道要如何解决,但我把mysql安装的时候是默认字体为gb2321,在mysql中直接插入中文则不会出现乱码,高手解决.
展开
8个回答
展开全部
***Mysql数据库常见乱码处理方式***
------先分清是否是数据库乱码,如果是其它则用其它方式处理
说明:i>里面每条并不是说是一个解决办法,有时都要用到; ii>这些方法应该能解决常见的乱码问题,并且这些解决方法都很简捷。
1.在安装数据库的过程中将默认的拉丁文-->GBK。
2.在创建数据库时设置选择GBK或者gb2312。
3.Mysql安装目录下的my.ini文件,将 "default-character-set=xxxxx" 中的xxxxx改成GBK或者gb2312。
4.Mysql安装目录下的\data\databasename(数据库名)\db.opt文件打开
default-character-set=gbk
default-collation=gbk_chinese_ci; 如果上面不是gbk和gbk_chinese_ci则改成支持中文的GBK或者gb2312。
5.进入Mysql的dos命令下:进入某数据库后 show full columns from tablename ;查看数据类型,如果不是支持中
文的类型则执行alter table tablename convert to character set gbk 。
6.在创建数据库时(用命令创建时)create database databasename CHARACTER SET gbk;
这是我当年总结的,现在都用oracle了,越学忘记的越多了,不过mysql只要里面的几条必好使.
------先分清是否是数据库乱码,如果是其它则用其它方式处理
说明:i>里面每条并不是说是一个解决办法,有时都要用到; ii>这些方法应该能解决常见的乱码问题,并且这些解决方法都很简捷。
1.在安装数据库的过程中将默认的拉丁文-->GBK。
2.在创建数据库时设置选择GBK或者gb2312。
3.Mysql安装目录下的my.ini文件,将 "default-character-set=xxxxx" 中的xxxxx改成GBK或者gb2312。
4.Mysql安装目录下的\data\databasename(数据库名)\db.opt文件打开
default-character-set=gbk
default-collation=gbk_chinese_ci; 如果上面不是gbk和gbk_chinese_ci则改成支持中文的GBK或者gb2312。
5.进入Mysql的dos命令下:进入某数据库后 show full columns from tablename ;查看数据类型,如果不是支持中
文的类型则执行alter table tablename convert to character set gbk 。
6.在创建数据库时(用命令创建时)create database databasename CHARACTER SET gbk;
这是我当年总结的,现在都用oracle了,越学忘记的越多了,不过mysql只要里面的几条必好使.
展开全部
Java中使用的编码格式与数据库默认的编码格式不一致,导致乱码。
解决办法是:java程序默认采用UTF-8,数据库在建表的时候也采用UTF-8,示例如下:
CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N',
`flag_type` int(5) NOT NULL default '0',
`type_name` varchar(50) character set utf8 NOT NULL default '',
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;//设置默认编码格式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是你数据库的问题。只用Hibernate的话应该不会出现乱码,如果你的是web项目,那就是你jsp页面接受的时候没转换。如果你的是java项目,建议你使用Junit进行单元测试,记得把配置里的showsql设成true,以确保哪个环节出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很不明白,有utf-8,为什么那么多人前仆后继地使用gbk和gb2312,像字符集的问题,除了错,还是自己细心找一下,肯定是你哪个地方的字符集不一致导致的,实在不行,全部字符集都重新设置,我是指数据库和资源文件的字符集都重新统一,这样可能反而减少工作量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你在插数据的时候,把数据编码也修改成gb2321
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询