怎么会是这样的:对结果集使用getString时不是乱码,而是十六进制代码。Help!

Pittypat 2002-09-06 01:36:45
我使用的平台是Tomcat4.0.1+Oracle8i(8.1.6),数据库查询操作:使用ResultSet.getString()得到的是数据库中实际存储数据的十六进制代码,如:
数据库数据 使用ResultSet.getString()得到的数据

删除部门 0xE588A0E999A4E983A8E997A8

icon 0x69636F6E

为什么?谢谢赐教!
...全文
68 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhu_liping 2002-09-06
  • 打赏
  • 举报
回复
自己去测试一个简单的例子呀,
String name=new String(rs.getString("name").getBytes("8859-1"),"gb2312");

out.println(name);
利而不害 2002-09-06
  • 打赏
  • 举报
回复
strTMP = rs.getString("TYPE_NO");
Long.parseLong(strTMP);
Pittypat 2002-09-06
  • 打赏
  • 举报
回复
在以上代码中凡是出现“rs.getString()”的地方均存在该问题。
Pittypat 2002-09-06
  • 打赏
  • 举报
回复
我的代码:
String sqlString="";
sqlString="select CONFIRMORNOT,ACTIONPAGE,OPERATEID,MODULEID,CONFIRMMSG,ICON,OPERATENAME from OPERATE where MODULEID="+_moduleid+" order by OPERATEID ";
PreparedStatement psmt=null;
ResultSet rs=null;


if(!dbconn.isConnected()){

}
else{
psmt=this.dbconn.getPreparedStatement(sqlString,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
try
{
rs=psmt.executeQuery();
if(rs.next())
{
this.menuHtmlCode+="<!--[if IE]>\n<div id='menu' onMouseover='highlight()' onMouseout='lowlight()'>\n";
rs.beforeFirst();
while(rs.next())
{
if (rs.getInt("CONFIRMORNOT")>=1)
{
this.menuHtmlCode=this.menuHtmlCode+"<div align='left' class='menuitems' onClick='jumptowithconfirm(urlString)' url='"+rs.getString("ACTIONPAGE")+"?operateid="+rs.getString("OPERATEID")+"&moduleid="+rs.getString("MODULEID")+"' confirmMessage='"+rs.getString("CONFIRMMSG")+"'><img src='images/"+rs.getString("ICON")+"' width='18' height='18' border='0' align='absmiddle'> "+rs.getString("OPERATENAME")+"</div>\n";
}
else
{
this.menuHtmlCode=this.menuHtmlCode+"<div align='left' class='menuitems' onClick='jumpto(urlString)' url='"+rs.getString("ACTIONPAGE")+"?operateid="+rs.getString("OPERATEID")+"&moduleid="+rs.getString("MODULEID")+"'><img src='images/"+rs.getString("ICON")+"' width='18' height='18' border='0' align='absmiddle'> "+rs.getString("OPERATENAME")+"</div>\n";
}
}
this.menuHtmlCode+="</div>\n<![endif]-->\n";
this.menuHtmlCode+="<script language='JavaScript1.2'>\n";
this.menuHtmlCode+="if (document.all&&window.print)\n";
this.menuHtmlCode+="document.body.onclick=hidemenu\n";
this.menuHtmlCode+="</script>\n";
psmt.close();
}
else
{
this.menuHtmlCode+="<!--[if IE]>\n<div id='menu' class='menuitems'>\n";
this.menuHtmlCode+="对不起,您<br>没有操作权限!\n";
this.menuHtmlCode+="</div>\n<![endif]-->\n";
this.menuHtmlCode+="<script language='JavaScript1.2'>\n";
this.menuHtmlCode+="if (document.all&&window.print)\n";
this.menuHtmlCode+="document.body.onclick=hidemenu\n";
this.menuHtmlCode+="</script>\n";
}
}
catch(SQLException SE)
{
System.out.println("db.executeQuery:"+SE.getMessage());
}
}
Pittypat 2002-09-06
  • 打赏
  • 举报
回复
---进行中文转换
String name=new String(rs.getString("name").getBytes("8859-1"),"gb2312");---我曾经使过,解决不了问题!
evogel 2002-09-06
  • 打赏
  • 举报
回复
显示,如果是中文
<%@ page contentType="text/html;charset=gb2312"%>
保存
要转一下

String user=new String(request.getParameter("creator").getBytes("8859_1"),"gb2312");
zhu_liping 2002-09-06
  • 打赏
  • 举报
回复
那么你的代码?
sandsworlf 2002-09-06
  • 打赏
  • 举报
回复
你查出来后进行中文转换
String name=new String(rs.getString("name").getBytes("8859-1"),"gb2312");
Pittypat 2002-09-06
  • 打赏
  • 举报
回复
我在orcale中查询是正常的!
zhu_liping 2002-09-06
  • 打赏
  • 举报
回复
你在orcale中查询看看是什么?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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