求救,为什么从取出的字符型数据成了乱码?

manrish 2003-08-02 06:53:11
我想从数据库中取一个字符型的字段
rs=stmt.executeQery("select * from tablename")
rs.next()
str=rs.getString("naty")
数据库是orracle,naty字段的数据类型是varchar2(10),为什么我取出显示是这种形式“oxe689d",实际上应该是一个“name“得字符串,怎么能让他正常显示,为什么会这样。
...全文
34 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
androwdelphi 2003-08-03
  • 打赏
  • 举报
回复
IE/查看/编码 是否设对了?
manrish 2003-08-03
  • 打赏
  • 举报
回复
import java.sql.*;
import java.io.*;
public class creat{
public static void main(String arg[]){
String strdbdriver="oracle.jdbc.driver.OracleDriver";
String strcon="jdbc:oracle:thin:@192.168.11.23:1521:manrish";
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;
try{
Class.forName(strdbdriver);
conn=DriverManager.getConnection(strcon,"system","manager");
}catch(Exception e){
System.out.println(e);
}
try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select * from name");

while(rs.next()){

System.out.println(rs.getString("name"));
}



}catch(Exception e){
System.out.println("显示错误");
}
}
}
数据库的连接正常,只是在显示的时候显示的是乱码,但是整型的字段能够正常显示。
我的表name中只有一个字段name类型是varchar2(10);数据库是oracle8.16,
manrish 2003-08-03
  • 打赏
  • 举报
回复
我在jdk13下测试程序(纯java)环境,显示的也是乱码,但是我得数据库的的确是字符串,有那位高人解释一下,为什么出现这种情况。
hjhd0 2003-08-03
  • 打赏
  • 举报
回复

<%@ page contentType="text/html; charset=2312"%>

或加入函数试试

public static String getStr(String str)
{
try{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859_1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{
System.out.println(e.toString());
return "null";
}

}

aarreess9960142 2003-08-02
  • 打赏
  • 举报
回复
要看代码才好说
VVV_lucky 2003-08-02
  • 打赏
  • 举报
回复
你的环境要是没问题,就不好说了。
cnesky 2003-08-02
  • 打赏
  • 举报
回复
把代码贴出来看看
pleonheart 2003-08-02
  • 打赏
  • 举报
回复
数据库里是正常的吗?
Encoding下试试

81,116

社区成员

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

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