当前位置: 技术问答>java相关
请问,我用String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312");为什么总抱错啊??
来源: 互联网 发布时间:2015-10-15
本文导语: 读取sql server2000中文的代码: try{ //连接操作 ....... // String strw= rs.getString(2); String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312"); } catch(SQLException e){ e.printStackTrace...
读取sql server2000中文的代码:
try{
//连接操作
.......
// String strw= rs.getString(2);
String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312");
}
catch(SQLException e){
e.printStackTrace();
}
想显示中文就抱错,,直接读取就正确。。。为什么?
抱错:
unreported exception:java.io.UnsupportedEncodingException ;must be caught
or declared.....
我做了catch(UnsupportedEncodingException ee) 还是不行啊。
请问该怎么做???
try{
//连接操作
.......
// String strw= rs.getString(2);
String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312");
}
catch(SQLException e){
e.printStackTrace();
}
想显示中文就抱错,,直接读取就正确。。。为什么?
抱错:
unreported exception:java.io.UnsupportedEncodingException ;must be caught
or declared.....
我做了catch(UnsupportedEncodingException ee) 还是不行啊。
请问该怎么做???
|
没有捕获异常,改成
try{
//连接操作
.......
// String strw= rs.getString(2);
String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312");
}
catch(Exception e){
e.printStackTrace();
}
try{
//连接操作
.......
// String strw= rs.getString(2);
String str2 = new String(rs.getString(2).getBytes("ISO8859_1"),"gb2312");
}
catch(Exception e){
e.printStackTrace();
}
|
跑出的是IO exception, 用
catch(Exception e){
e.printStackTrace();
}
---------------来接所有的异常,是一个不错的办法。
catch(Exception e){
e.printStackTrace();
}
---------------来接所有的异常,是一个不错的办法。
|
没有ISO8859_1也就是说在Java中它不认ISO8859_1,但它认为8859_1与ISO8859_1是相同的!
也就说你应该这样写
String str2 = new String(rs.getString(2).getBytes("8859_1"),"gb2312");
你一定是能导出Sybase数据库的时候有乱码出现,想转换吧!
你先看一下Sybase数据库是字符集是什么? 一般不是cp850就是ISO 8859-1
你也可以自己定义Sybase的字符集
也就说你应该这样写
String str2 = new String(rs.getString(2).getBytes("8859_1"),"gb2312");
你一定是能导出Sybase数据库的时候有乱码出现,想转换吧!
你先看一下Sybase数据库是字符集是什么? 一般不是cp850就是ISO 8859-1
你也可以自己定义Sybase的字符集