java连接了mysql数据库后,程序行向数据库中插入信息,代码如下:

dbhelper boringdb = new dbhelper();
            boringdb.connSQL();
            String insert = "insert into boring(prflurl,name,post,school,reside) values('www.地址地址f','csdn','好无聊啊','家里蹲大学','北京')"; 
            if (boringdb.insertSQL(insert) == true) {  
                System.out.println("insert successfully");  
            }    

数据库中插入的数据为乱码like this:??????都是问号
直接使用命令窗口(cmd小黑窗)或者phpmyadmin用sql语句进行插入操作却没有问题,不乱码

于是搜索解决办法网页链接
按照办法是:要先在cmd中mysql> show variables like 'character%';
发现。。都不太一样有latin1的有gbk的。。于是按照文章所说需要:

我们看到,尽管使用数据库时我们能够正常的添加和显示中文,但是在使用程序连接数据库时并不能够正常显示中文,为此我们需要修改MySQL的默认编码,编辑my.ini(MySQL配置文件)文件对编码进行修改
设置MySQL的默认字符集为utf8,找到客户端配置[client]在下面添加。
default-character-set=utf8 找到服务器配置[mysqld]在下面添加
default-character-set=utf8 设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码
停止和重新启动MySQL net stop mysql net start mysql

然额,这么操作之后,mysql启动不了了。。不了了。。了
于是再次百度发现:MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8
[#0x004E] MySQL 5.5版本上my.ini内[mysqld]项中不能再写default-character-set=utf8

在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的
[mysql] 和 [mysqld] 项中都是写: default-character-set=utf8 到了5.5版本, [mysql]
项内可以这么写, [mysqld] 项内这么写在启动MySQL服务时会有1067错误,经查询发现这里必须要这样写:
character-set-server=utf8

原来是我的mysql版本太高(5.6),这招已经不好使了,要更新换代
最后果然圆满解决^-^


buuzzz
0 声望0 粉丝