首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java 读取 UTF8字符集的mysql 乱码有关问题

2012-03-16 
java 读取 UTF8字符集的mysql 乱码问题我要用Java读取一个mysql中的表,表的字符集是用UTF-8的,我试了好几

java 读取 UTF8字符集的mysql 乱码问题
我要用Java读取一个mysql中的表,表的字符集是用UTF-8的,我试了好几种方法都无法正常查询表中的内容,出来的都有?????,请教高手有什么办法解决。

public   static   void   main(String   a[])
{
try
{
Class.forName( "com.mysql.jdbc.Driver ").newInstance();

String   url2= "jdbc:mysql://172.16.10.10:3306/dabc? "   +
"user=yy "   +
"&password=123 "
+   "&useUnicode=true "
+   "&characterEncoding=UTF-8 ";

Connection   conn2=   DriverManager.getConnection(url2);

PreparedStatement   stt=conn2.prepareStatement( "Select   name,city   from   corporation   limit   0,2 ");

ResultSet   rs=stt.executeQuery();

while(rs.next())
{

System.out.println(new   String(rs.getString( "name ").getBytes( "8859_1 "), "UTF-8 ")+     "     "   +rs.getString( "city "));
}
stt.close();

}catch(Exception   e)
{
System.out.println(e);
}
}
以上代码出来的结果为:
广????达???????????????????????????     ????·????
??山??顺德?????达?????件????????????     ????±±




[解决办法]
我也遇到同样问题 帮顶
[解决办法]
System.out.println(new String(rs.getString( "name ").getBytes( "8859_1 "), "UTF-8 ")
不用

直接System.out.println(rs.getString( "name)
因为
String url2= "jdbc:mysql://172.16.10.10:3306/dabc? " +
"user=yy " +
"&password=123 "
+ "&useUnicode=true "
+ "&characterEncoding=UTF-8 ";

这里已经设置为UTF-8

乱码是你自己画蛇添足造成的
[解决办法]
哦!我也不会这个
[解决办法]
mysql里应该是GBK的吧 你把那个不要试试
还有System.out.println(new String(rs.getString( "name ").getBytes( "8859_1 "), "UTF-8 ")+ " " +rs.getString( "city ")); 如果要转的话应该这样写:System.out.println(new String(rs.getString( "name ").getBytes( "iso-8859-0 "), "UTF-8 ")+ " " +rs.getString( "city "));


[解决办法]
MYSQL安装时必须设置字符集,
连接时:jdbc:mysql://localhost/shujuku?user=root&password=mfditfyu&useUnicode=true&characterEncoding=GB2312

热点排行