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

为什么java连mssql都会出现乱码?
我用微软的mssql作为服务器,但读出的数据要经过转换才能正确显示中文,否则只能显示乱码,不知道为什么,有什么办法能解决吗?
public   static   void   main(String   arg[]){
DBConnection   db=new   DBConnection();
ResultSet   rs=null;
String   sql= "select     top   1   *   from   test ";
rs=db.sql_execute(sql);
try{
while(rs.next()){


String   str=rs.getString(7);
System.out.println(new   String(str.getBytes( "ISO8859_1 "), "GBK "));//只有通过这样的转换才能正确显示中文
}
}catch(Exception   ex){

}
}

------解决方案--------------------
你的数据库是什么编码啊。MSSQL没用过,不太清楚,请检查你的编码
------解决方案--------------------
搞清楚 数据库的编码 操作系统编码 虚拟机的编码

看看哪里 出了问题
------解决方案--------------------
好象MySQL的必须转换吧???
------解决方案--------------------
一般来说是数据库的编码问题,检查一下
------解决方案--------------------
一般是要经过那个转换才能显示中文吧。。我用一阵mysql一直是这样,对数据库出来的,我都用了转换才能显示啊,我一般用GB2312,
------解决方案--------------------
mysql有一个my.ini的配置文件,里面可以设置--default-character-set的,

不知道 SQLSERVER 是怎么配置的
------解决方案--------------------
修改my.ini把字符集改成utf-8 重启一下 而且最好程序啦网页也用utf-8
mySql的中文支持确实是个问题
------解决方案--------------------
显示乱码是因为~~编码和解码不一致就会导致这个问题的产生
将数据库的默认编码设置为UTF或GBK的话 都能解决乱码问题
------解决方案--------------------
楼主说的是mssql不是mysql


建议楼主以后用 "sql server "这个字符串,不要用 "mssql "
容易看错了


应该还是字符集的问题
------解决方案--------------------
数据库的url加入&charset=GBK
jdbc:inetdae:127.0.0.1:1433?database=aaaa&charset=GBK&user=sa&password=,,
------解决方案--------------------
SQL Server中可能出现中文的字段定义为nvarchar之类的 "n* "类型,中文问题就交由SQL Server自己处理了,你就从编码转换中解放出来了。