当前位置: 技术问答>java相关
又是汉字问题,哎...
来源: 互联网 发布时间:2015-01-03
本文导语: Connection.preparedStatement(sql, type, concur); 当type = ResultSet.TYPE_FORWARD_ONLY时, ResultSet.getString()返回值为正常的汉字,设type = ResultSet.TYPE_SCROLL_SENSITIVE或TYPE_SCROLL_INSENSITIVE时,返回值为0xE8BEBDE6B2B3E994A6E5B79E。 我的环境是: wi...
Connection.preparedStatement(sql, type, concur);
当type = ResultSet.TYPE_FORWARD_ONLY时, ResultSet.getString()返回值为正常的汉字,设type = ResultSet.TYPE_SCROLL_SENSITIVE或TYPE_SCROLL_INSENSITIVE时,返回值为0xE8BEBDE6B2B3E994A6E5B79E。
我的环境是: win2000, jdk1.3中文版,数据库是oracle 8.1.6
代码段:
sqlSelect3 = "select a.ytdwbm, a.rq from dbba01 a ";
pstm3 = conn.prepareStatement( sqlSelect3, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
rs3 = pstm3.executeQuery();
while (rs3.next()) {
System.out.println(rs3.getString("ytdwbm"));
System.out.println(rs3.getDate("rq"));
}
pstm3.close();
结果:
0xE8BEBDE6B2B3E994A6E5B79E
2001-01-21
0xE8BEBDE6B2B3E585B4E99A86E58FB0
2001-01-21
0xE8BEBDE6B2B3E6B288E998B3
2001-01-21
0xE8BEBDE6B2B3E9AB98E58D87
2001-01-21
如果把TYPE_SCROLL_INSENSITIVE换成TYPE_FORWARD_ONLY则结果正常。
有人认为和oracle安装时所选择的字符集有关,说还要设置系统字符集。
我不大明白。我的注册表中HKEY_LOCAL_MACHINE->ORACLE->HOME0->NLS_LANG的值是:SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280,需要改吗?
请各位高手救命啊!
当type = ResultSet.TYPE_FORWARD_ONLY时, ResultSet.getString()返回值为正常的汉字,设type = ResultSet.TYPE_SCROLL_SENSITIVE或TYPE_SCROLL_INSENSITIVE时,返回值为0xE8BEBDE6B2B3E994A6E5B79E。
我的环境是: win2000, jdk1.3中文版,数据库是oracle 8.1.6
代码段:
sqlSelect3 = "select a.ytdwbm, a.rq from dbba01 a ";
pstm3 = conn.prepareStatement( sqlSelect3, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY );
rs3 = pstm3.executeQuery();
while (rs3.next()) {
System.out.println(rs3.getString("ytdwbm"));
System.out.println(rs3.getDate("rq"));
}
pstm3.close();
结果:
0xE8BEBDE6B2B3E994A6E5B79E
2001-01-21
0xE8BEBDE6B2B3E585B4E99A86E58FB0
2001-01-21
0xE8BEBDE6B2B3E6B288E998B3
2001-01-21
0xE8BEBDE6B2B3E9AB98E58D87
2001-01-21
如果把TYPE_SCROLL_INSENSITIVE换成TYPE_FORWARD_ONLY则结果正常。
有人认为和oracle安装时所选择的字符集有关,说还要设置系统字符集。
我不大明白。我的注册表中HKEY_LOCAL_MACHINE->ORACLE->HOME0->NLS_LANG的值是:SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280,需要改吗?
请各位高手救命啊!
|
可能是你的JDBC驱动对这个支持的不够好,建议换一个JDBC的驱动试试,
比如Weblogic的JDBC就很好!
比如Weblogic的JDBC就很好!