itangyuan
itangyuan
2011-03-13 15:17
浏览 580
已采纳

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

一个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中如果出现中文路径,就打开不数据库。估计也是乱码的原因。。

怎么解决啊??? :cry:

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • zyrwjj
    zyrwjj 2011-03-13 15:51
    已采纳

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

    点赞 评论
  • xing23777
    xing23777 2011-03-14 10:37

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

    防止中文参数传递乱码:

    1. window.location = encodeURI("XXXX/check?userName=" + userName);
    2. window.location.href = "XXXX/check?userName=" + userName;

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

    点赞 评论
  • zyrwjj
    zyrwjj 2011-03-15 11:40

    为什么我的没乱码呢?

    点赞 评论