我在eclipes环境下编写java代码遇到以下两种情况,请专家帮忙解释、解决一下,谢谢!
第一种情况
参数设置
Windows->preferences->general->workspace->text file encoding->other->(改为)utf-8
详见附件:a.jpg
代码(一部分)
public static String readMdb(int intId) {
String strWord = new String();
String strUrl = new String();
try {
strUrl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\kangxidic.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(strUrl);
//System.out.println("连接成功!");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from dic where ID="+intId);
strWord = rs.getString("汉字字头");
System.out.print(strWord + " ");
rs.close();
stmt.close();
conn.close();
}
catch(Exception e) {
e.printStackTrace();
}
return strWord;
}
“汉字字头”为Access数据库中的一个字段
错误提示
java.sql.SQLException: Column not found
at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at kangxi.readMdb(kangxi.java:54)
at kangxi.main(kangxi.java:259)
提问:这种错误是什么原因造成的,应该如何解决?
附:在netbeans6.71版本中也提示同样的错误
第二种情况
参数设置
Windows->preferences->general->workspace->text file encoding->default(GBK)
详见附件:b.jpg
代码(一部分)
public static String readMdb(int intId) {
String strWord = new String();
String strUrl = new String();
try {
strUrl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\kangxidic.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection(strUrl);
//System.out.println("连接成功!");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from dic where ID="+intId);
strWord = rs.getString("汉字字头");
System.out.print(strWord + " ");
rs.close();
stmt.close();
conn.close();
}
catch(Exception e) {
e.printStackTrace();
}
return strWord;
}
public static String toUTF8(String strWord) {
String strUFT8_Word = new String();
//String strZdic_UFT8_Word = new String();
try{
strUFT8_Word = URLEncoder.encode(strWord,"UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//strZdic_UFT8_Word = strUFT8_Word.replaceAll("%","Zdic");
System.out.println(strUFT8_Word + " ");
return(strUFT8_Word);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int intId;
String strWord = new String();
String strUFT8_Word = new String();
strWord = readMdb(intId);
strUFT8_Word = toUTF8(strWord);
}
“汉字字头”为Access数据库中的一个字段
其中读取的汉字为偏僻字,见附图c.jpg
输出提示
? %3F
提问:这种问题是什么原因造成的,应该如何解决?
问题补充:
除此之外,还有解决得办法吗?谢谢
问题补充:
我希望使用汉字