读书人

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

发布时间: 2012-03-16 16:34:56 作者: rapoo

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

读书人网 >J2SE开发

热点推荐