java查询mySQL问题

mySQL数据库中表中的数据是中文的! 但查询出来在控制台显示的时候是乱

码! 这是怎么回事呀!请各位大虾帮忙解决一下!mySQL数据库能连接上!

一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES 'utf8';

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

我在自己机器上把上述三个字符集都设置成utf8后,查询中文结果还是乱码,只有把character_set_results设置成GBK之后才能从命令行正常显示中文.
这是命令语句:set character_set_results=GBK;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-27
1.任何地方都改用同意的格式 java文件也是一样 都统一utf-8
2.jdbc的url也改一下:
jdbc:mysql://localhost:3306/database?&useUnicode=true&characterEncoding=utf8

3。实在都不行 就模拟 javascript 的escape和unescape.
第2个回答  2008-12-27
查询之后用filter过滤下,或者直接在jsp页面转下码:

String name=request.getParamenter("name");
name=new String(name.getBytes("iso859-1"),"gb2312");
第3个回答  2008-12-27
这个问题是因为,MYSQL的编码,和Eclipse的编码格式不一致造成的,想解决最好了解一下它们之间的转换过程。下面这个程序能帮助你理解一下:
public class HelloWorld
{
public static void main(String[] argv){
try{
System.out.println(\"中文\");//1
System.out.println(\"中文\".getBytes());//2
System.out.println(\"中文\".getBytes(\"GB2312\"));//3
System.out.println(\"中文\".getBytes(\"ISO8859_1\"));//4

System.out.println(new String(\"中文\".getBytes()));//5
System.out.println(new String(\"中文\".getBytes(),\"GB2312\"));//6
System.out.println(new String(\"中文\".getBytes(),\"ISO8859_1\"));//7

System.out.println(new String(\"中文\".getBytes(\"GB2312\")));//8
System.out.println(new String(\"中文\".getBytes(\"GB2312\"),\"GB2312\"));//9
System.out.println(new

String(\"中文\".getBytes(\"GB2312\"),\"ISO8859_1\"));//10

System.out.println(new String(\"中文\".getBytes(\"ISO8859_1\")));//11
System.out.println(new

String(\"中文\".getBytes(\"ISO8859_1\"),\"GB2312\"));//12
System.out.println(new

String(\"中文\".getBytes(\"ISO8859_1\"),\"ISO8859_1\"));//13
}
catch(Exception e){
e.printStackTrace();
}
}
}
另外这篇文章介绍的详细一些
http://www.syue.com/Java/HTML/77052.html

参考资料:http://www.syue.com/Java/HTML/77052.html

第4个回答  2008-12-27
你先检查一下mySQL的配置,是否都是中文字符集,输入status,如果正常的话应该有像下面这样显示:
Server characterset: gb2312
Db characterset: gb2312
Client characterset: gb2312
Conn. characterset: gb2312
如果不是你就修改mySQL的配置,把语言改成gb2312即可.
第5个回答  2008-12-27
乱码问题真是多啊
其实所有的编码格式设置成UTF-8
比方说Jsp,建数据库的时候都设置成UTF-8
这样是不会出现乱码的

最多就加个Filter