Myeclipse+mysql出现中文乱码情况

首先要统一myeclipse的编码情况:

1、进入Window--Preferences--General--Workspace,Text file encoding 选项中默认的Default(GBK)选项更改为Other,并将值设为utf-8;
2、进入Window--Preferences--MyEclipse--Files and Editors,将这个选项下面的:ASP and PHP、CSS、DTD、HTML、JSP、XML中的字符编码全部更改为utf-8;
3、如果有必要的话,将所有JSP页面头上都加上这行代码:<%request.setCharacterEncoding("UTF-8"); %>,防止页面传值的时候乱码;
4、如果有调用Servlet文件的时候,在Servlet文件中加上如下两行代码 :
	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");
然后就是设置mysql的编码:

一,先查看mysql的编码

在dos环境下,输入命令show variables like'character%';


现在看到sql中很多都是拉丁编码,最好都改成utf8编码

使用set names ‘uft8’;命令可以设置三个字符集,相当于:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;


另外两个手动设置:


很多情况下,这样设置了之后就能把乱码问题解决了。但是还是不能完全避免出现乱码的可能,为什么呢?
  因为character_set_client,character_set_connection这两个变量仅用与保证与character_set_database编码的一致,而character_set_results则用与保证SELECT返回的结果与程序的编码一致。
    例如,你的数据库(character_set_database)用的是utf8的字符集,那么你就要保证character_set_client,character_set_connection也是utf8的字符集。而你的程序也许采用的并不是utf8,比如你的程序用的是gbk,那么你若把character_set_results也设置为utf8的话就会出现乱码问题。此时你应该把character_set_results设置为gbk。这样就能保证数据库返回的结果与你的程序的编码一致。
到此应该就可以解决绝大多数我们遇到的乱码问题了,另外还必须强调的是,有时候乱码的出现有可能是以上几种原因混合造成的。
总而言之,我们应当尽量的保证数据库中的数据是正确的,就是客户端到服务器端或者服务器端到客户端转换的过程中不要产生乱码,那么问题处理起来就相对简单了。
为便于大家记忆,总结为以下四点:
1、要保证数据库中存的数据与数据库编码一致,即数据编码与character_set_database一致。
2、要保证通讯的字符集与数据库的字符集一致,即character_set_client,character_set_connection与character_set_database一致。
3、要保证SELECT的返回与程序的编码一致,即character_set_results与程序编码一致。
4、要保证程序编码与浏览器编码一致,即程序编码与<meta http-equiv="Content-Type" content="text/html; charset=?" />一致。

你可能感兴趣的:(mysql,MyEclipse,编码,中文乱码,utf-8)