java输出的汉字变成乱码_请问:关于java汉字编码、汉字乱码的问题?

我在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

提问:这种问题是什么原因造成的,应该如何解决?

问题补充:

除此之外,还有解决得办法吗?谢谢

问题补充:

我希望使用汉字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值