进行一下编码转换,
String strTmp = new String (str.getBytes("ISO-8859-1"),"gb2312");
str 是从数据库中取出来的8859 -1 编码
转换为GB2312就行了
String strTmp = new String (str.getBytes("ISO-8859-1"),"gb2312");
str 是从数据库中取出来的8859 -1 编码
转换为GB2312就行了
如果数据库内数据是乱吗,你就得看看在插入时是否进行转化(转为iso8859_1)
如果库内是正确的,就要在现实的时候,照楼上的转。
good luck
程序显示"SQLException"异常:invalid descriptor index 你不妨将整条sql语句打印出来,然后再sql分析察看器中运行,具体看看错误在那里?good luck!
import java.awt.*;
import java.awt.event.*;class Acc_Win extends Thread
{
Frame f=new Frame("帐户查询");
TextArea text=new TextArea();
String str_sql,acc,name,addr;int limitfee,balance;
Connection con;Statement sql;ResultSet rs;
Acc_Win()
{
f.setBounds(150,150,300,120);
f.setVisible(true);
f.add(text,"Center");f.pack();
f.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{f.setVisible(false);System.exit(0);}
});
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e){}
try{System.out.println("建立数据库连接");
con=DriverManager.getConnection("jdbc:odbc:account","","");
sql=con.createStatement();
}
catch(SQLException e1){}
}
public void run()
{
while(true)
{text.setText(null);
try{System.out.println("查询数据库");
str_sql="select account,limitfee,companyname,address,balance from guestuser";
rs=sql.executeQuery(str_sql);
while(rs.next())
{
name=rs.getString("companyname");
acc=rs.getString("account");
addr=rs.getString("address");
limitfee=rs.getInt("limitfee");
balance=rs.getInt("balance");
text.append("帐户:"+acc+" ");
text.append("用户名:"+name+" ");
text.append("地址:"+addr+" ");
text.append("限费额度:"+limitfee+" ");
text.append("余额:"+balance+" ");
text.append("\n");
}
}
catch(SQLException e1){System.out.println("Error:"+e1);}
f.pack();
try{sleep(2000);}
catch(InterruptedException exp){}
}
}
}
public class ex23_4
{
public static void main(String args[])
{Acc_Win account_win=new Acc_Win();
account_win.start();
}
}
程序显示"SQLException"异常:invalid descriptor index 木鱼兄,代码贴出来了,我在线等待!