java查询mySQL问题
发布网友
发布时间:2023-08-21 06:16
我来回答
共6个回答
热心网友
时间:2024-11-24 13:57
一般就算设置了表的默认字符集为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;
热心网友
时间:2024-11-24 13:57
1.任何地方都改用同意的格式 java文件也是一样 都统一utf-8
2.jdbc的url也改一下:
jdbc:mysql://localhost:3306/database?&useUnicode=true&characterEncoding=utf8
3。实在都不行 就模拟 javascript 的escape和unescape.
热心网友
时间:2024-11-24 13:58
查询之后用filter过滤下,或者直接在jsp页面转下码:
String name=request.getParamenter("name");
name=new String(name.getBytes("iso859-1"),"gb2312");
热心网友
时间:2024-11-24 13:58
这个问题是因为,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
热心网友
时间:2024-11-24 13:59
你先检查一下mySQL的配置,是否都是中文字符集,输入status,如果正常的话应该有像下面这样显示:
Server characterset: gb2312
Db characterset: gb2312
Client characterset: gb2312
Conn. characterset: gb2312
如果不是你就修改mySQL的配置,把语言改成gb2312即可.
热心网友
时间:2024-11-24 14:00
乱码问题真是多啊
其实所有的编码格式设置成UTF-8
比方说Jsp,建数据库的时候都设置成UTF-8
这样是不会出现乱码的
最多就加个Filter