为什么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自己处理了,你就从编码转换中解放出来了。