当前位置: 首页 > 知识库问答 >
问题:

如何使用jdbc-odbc驱动程序从MS Access db正确返回特殊西班牙语字符

庄萧迟
2023-03-14

如何使用Ms Acess数据库的jdbc-odbc驱动程序从Ms access(.accdb或.mdb)数据库返回特殊字符?

从结果集的字节(bytes[]bt=rs.getbytes(index_of_field)新字符串(bt,“UTF-8”)甚至新字符串(bt,“ISO-8859-1”))进行转换或获取字符串(rs.getstring())是行不通的,您需要一种有效的方法来完成。

共有1个答案

璩涛
2023-03-14

获取特殊字符的方法如下(其他一些特殊字符也可能会成功返回,但是,还没有分析这种情况):

  • Á,é,í,ó,\,á,é,í,ó,ü,ü,ü,ñ

并正确格式化所有返回的字符串(我指的是查询的字段),必须遵循以下过程。

Properties props;

props = new Properties();
props.put ("charSet", "iso-8859-1");
String dbPath = "C:/example/directory/myDatabase.accdb";


Properties props;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connURL="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+dbPath;

try {

    props = new Properties();
    props.put ("charSet", "iso-8859-1");

    con = DriverManager.getConnection(connURL, props);
    stmt = con.createStatement();
    stmt.execute("select "field+" from "+tableName); // query exec

    rs = stmt.getResultSet(); // query resultset
    rsMetaData = rs.getMetaData(); // resultset metadata

} catch (SQLException ex) {

    return false;
}
String resultString;

if( rs != null){

  while( rs.next() ){  // this while may be surrounded with a try-catch
    // Fields will be displayed for every row in the DB
    // indexField must start from 1 !

    for (int indexField = 1; indexField<=rsMetaData.getColumnCount(); indexField++){

      resultString = rs.getString(field_index);
      System.out.println(This is the field of column number "+indexField+": "+resultString);

    } // for close
  } // while close
} // if close
 类似资料:
  • 我有一个java程序正在使用HortonWorks的JDBC驱动程序连接到VirtualBox中的数据库。一切都运行得很好,但我在sql查询中的冒号有问题。 我正在尝试设置的rowid是“:rowid:”。我在前面和后面添加冒号,使列名对于其他应用程序是唯一的。现在冒号必须在那里,我想知道是否有一种方法使用官方站点的Hortonworks JDBC Driver for Apache Hive(v

  • 问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O

  • 我使用HtmlCleaner库来解析/转换java中的HTML文件。 似乎无法处理像“Áák NUÍíNU NU NU NU NU”这样的西班牙语字符 我可以在HtmlCleaner中设置任何属性来处理此解决方案或任何其他解决方案吗?这是我用来调用它的代码:

  • 我有以下selenium脚本,等待页面加载并查找元素。在检索到元素之后,我想关闭驱动程序,这样我的ram就会被释放,但是整个程序以结束,这意味着驱动程序在不适当的时间被关闭。我如何正确关闭我的驱动程序后,我想要的信息?

  • 问题内容: 我在页面上添加了一个简单的排序。这个想法是搜索产品。这些产品是用西班牙语编写的,带有口音。例如:“Jamón”。 这是我的代码: 我唯一的问题是您必须输入“Jamón”才能找到产品“Jamón”。我想要的是更加灵活,如果用户键入“ Jamon”,则结果必须包含“Jamón”。 如何使用角度过滤器进行搜索而忘记重音符号?任何想法? 提前致谢。 问题答案: 您需要创建一个过滤器功能(或完整

  • 我需要将升级到。 Microsoft网站有以下信息: sqljdbc41.jar ;类库提供了对JDBC4.0 API的支持。它包括JDBC4.0驱动程序的所有特性以及JDBC4.0 API方法。不支持JDBC 4.1(将引发异常“SQLFeaturenotSupportedException”)。 因此,已经在java中运行的JDBC API将正常工作。 但是,Microsoft ODBC驱动程