0 0

java读取access数据库表字段名中文乱码,试过一些方法还是解决不了。5

一个swing页面,放了个浏览按钮,让用户选择access数据库路径,然后拼成链接字符串。
连接方式为:
url = jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdbPath + "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url);

要根据用户的选择读取出数据库中的表名,然后根据表名读取出字段名。
ResultSetMetaData rsmd = pstmt.getMetaData();
但只要字段名是中文的就乱码,new String(rsmd.getColumnName(i).getBytes(),"GBK")这些也试过了还是不行。

还有就是链接字符串url中如果出现中文路径,就打开不数据库。估计也是乱码的原因。。


怎么解决啊???

问题补充: public static String ISOtoGB(String iso) {
        String gb;
        try {
            if (iso.equals("") || iso == null) {
                return "";
            } else {
                iso = iso.trim();
                gb = new String(iso.getBytes("ISO-8859-1"), "GB2312");
                return gb;
            }
        } catch (Exception e) {
            System.err.print("编码转换错误:" + e.getMessage());
            return "";
        }
    }


我这样写了个方法,还是???问号,

这个函数是不是写错了?

问题补充:谢谢,不过我这个是c/s程序,没有用request这些。。。

问题补充:不知道呢,纠结啊。。。。。。你有将ISO-8859-1编码转换成GB2312编码的函数吗?
可以给一个吗。
2011年3月13日 15:17

3个答案 按时间排序 按投票排序

0 0

采纳的答案

这是编码方式的问题,自己写一个专门将ISO-8859-1编码转换成GB2312编码的函数,然后在你所说的需要用到中文而出现乱码的地方调用这个函数,就OK了。
给你个建议,像你所说的那些地方最好不要用中文,有些地方不支持中文编码的,毕竟是老外开发的东东。。。

2011年3月13日 15:51
0 0

为什么我的没乱码呢?

2011年3月15日 11:40
0 0

servlet:
         request.setCharaterEncoding("utf-8");

防止中文参数传递乱码:
  1. window.location = encodeURI("XXXX/check?userName=" + userName);
  2. window.location.href = "XXXX/check?userName=" + userName;

这些方法你可以试试,是我平常总结的!

2011年3月14日 10:37

相关推荐

Global site tag (gtag.js) - Google Analytics