日期:2014-05-17  浏览次数:20722 次

关于Mysql乱码问题
大家好,小弟一直想把MySQL乱码给弄明白,每一回都几乎都有乱码,这回想弄个明白,拜托各位大神了。
网上解决方法也很多,但试过了还是不行。

我的MySQL装的时候是选了utf8的字符集,Myeclipse设置的字符编码也是utf-8。
乱码的情况是这样的,我向数据库中存入中文数据,用Mysql客户端看到是一连串的???,
但是用Myeclipse取出数据打印时,打印的又是中文了。我想是不是我的MySQl 设置有问题还是……

求助中,谢谢。
------最佳解决方案--------------------
my.ini中有两处编码配置要改。楼上只提示改了一个地方。楼主一定要注意些。

[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
default-character-set=gbk
------其他解决方案--------------------
原因是Windows操作系统默认的是GBK,MySQL的client的必须与系统一致,才不会出现乱码。
将配置文件my.ini中的客户端配置改为如下:
[client]

port=3306

[mysql]

default-character-set=gbk
注意:必须要关掉MySQL服务。
------其他解决方案--------------------
http://www.jb51.net/article/23377.htm
看看这个吧,第二点和第三点应该能解决LZ的问题。
------其他解决方案--------------------
在你没传入mysql数据库的时候debug下你传递的值或者打印到控制台看看是否为乱码、
------其他解决方案--------------------
这个问题你要研究的话,你就去研究操作系统吧。
其实没多大问题的,只要你查看数据的时候设置一下字符集编码就可以。
set character_set_results=gbk;
这只是临时设置,不影响内部编码

------其他解决方案--------------------
我也遇到过相似的问题
------其他解决方案--------------------
jdbc:mysql://localhost:3306/text?useUnicode=true&characterEncoding=utf8,

------其他解决方案--------------------
解决问题】

1、从my.ini下手

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8
 

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

然后重启mysql,执行

mysql> SHOW VARIABLES LIKE 'character%';

mysql> SHOW VARIABLES LIKE 'collation_%';

确保所有的Value项都是utf8即可。

2、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。

CREATE TABLE `tablename4` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`varchar1` varchar(255) DEFAULT NULL,

`varbinary1` varbinary(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 
 


3、网页xxx.php保存时选择utf8编码,页头最好加上

header('conten-type:text/html;charset=utf-8');

在执行CRUD操作前先执行一下

mysql_query("set names utf8");


详细出处参考:http://www.jb51.net/article/23377.htm
------其他解决方案--------------------
这是你返回的编码问题
------其他解决方案--------------------
是不是你程序与数据库接口处编码不一致
------其他解决方案--------------------
我也遇到了这种问题,mysql和hibernate设置都是utf-8,但某些内容进去还是乱码,不知道怎么回事。
------其他解决方案--------------------
在Navicat for MySQL工具里面对数据库 表设置字符集编码
------其他解决方案--------------------
编码没有问题,很正常,用命令行看到的就是乱码。
建议下载一个mysql客户端使用,我是不会在开发中使用命令行写sql的。那是相当蛋疼
------其他解决方案--------------------
我也遇到过同样的问题,不过是在liux系统中
------其他解决方案--------------------
这个要调试,第一:在存储数据库之前看看是否乱码,如果这个时候乱码那么就是你应用的乱码,第二:如果第一种情况没有乱码,而是存入数据库乱码了,那么可能树数据库设置问题,你看看你数据库表的字段是不是和应用的编码一致。