日期:2014-05-20  浏览次数:20784 次

从mysql中取出中文后显示为?是怎么回事
jdbc:mysql://localhost/Test?useUnicode=true&characterEncoding=GB2312
我是这样连接的

取的时候是这样写的System.out.println(sqlRst.getString(2))

结果给我打印的是 ???à 这是怎么回事呀,还需要加什么别的代码吗?

------解决方案--------------------
jdbc:mysql://localhost/Test?useUnicode=true&characterEncoding=GB2312
写成下面看
jdbc:mysql://localhost:3306/Test?useUnicode=true&characterEncoding=GB2312

------解决方案--------------------
调整一下数据库的编码,写在连接里基本是无用的
最好在程序里转化编码
------解决方案--------------------
mark
------解决方案--------------------
查看编码样式show variables like %char%
然后用set ....=utf8
给俺点分吧,没分下东东了



------解决方案--------------------
写在连接里的只能是你传的字符集,数据库存储的字符集跟这个不一样,你要不就把页面跟数据库字符集搞成一样,要不就转一下
------解决方案--------------------
String mm1=rs.getString( "name ");
String mm2=new String(mm1.getBytes( "iso-8859-1 "), "gbk ");
------解决方案--------------------
存的数据和取得数据字符不一样。
------解决方案--------------------
先看一下你数据库中的内容 是不是问号吧,如果是的话,怎么取都是问号了
------解决方案--------------------
在你的my.ini文件中修改
[mysqld]
default-character-set=utf8

[client]
default-character-set=utf8
不过你可能重启数据库,还要删除原有的数据库,重新建立