oracle AL32UTF8字符集,java读取数据库返回的数据都是问号?

榴莲酥2013 2009-02-03 07:57:33
oracle是AL32UTF8字符集,我建立一个ejb项目,在main函数中读取数据表,然后将返回的数据输出到控制台,但是中文都是问号,这应该是字符集转换的,但是如何转换,试了好多转换,都是还是问号,请高人帮忙解决一下!测试两种链接但是都不还是同样的问题.此项目的编码也是设置为了utf8,默认是GBK。
一下是main函数代码:
int oracleId = CharacterSet.AL32UTF8_CHARSET;
//CharacterSet dbCharset = CharacterSet.make(oracleId);
CharacterSet myCharSet = CharacterSet.make(CharacterSet.UTF8_CHARSET);
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

// Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@122.1.1.3:1521:utf8", "utf8", "utf8");
Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@utf8", "utf8", "utf8");

Statement stmt = conn.createStatement();
// get data from db
ResultSet rs = stmt.executeQuery("SELECT * FROM TBL2");

String szOut;
String szTemp;
while (rs.next()) {

oracle.sql.CHAR out_value = new oracle.sql.CHAR(rs.getString("COL2"), myCharSet);
String firstNameString = out_value.stringValue();

}
rs.close();
stmt.close();
conn.close();
...全文
900 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhuaiwei 2009-02-19
  • 打赏
  • 举报
回复
过滤器,其实,就是一个java类去(实现一个超类filter)或者(是继承一个接口filter)这两我记不清了,我好就没用了

,反正超类和接口有一个能做到,然后你在web中配置一下就行,配置和servlet差不多,
sunhuaiwei 2009-02-05
  • 打赏
  • 举报
回复
方法一:
把从oracle数据库中取出的值进行一下字符转换:
String firstNameString =new String (out_value.stringValue().getBytes("iso-8859-1"),"gb2312");

方法二:
是你写个过滤器,把字符转换成统一字符集

kao331431214 2009-02-03
  • 打赏
  • 举报
回复
将项目中的编码都统一成GBK或UTF8

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧