java - 从 Java 检索具有国际名称的 MS Access 列(编码)

标签 java ms-access

我需要从一些旧版 Access 数据库导入数据。我使用一些数据库文件运行了代码,一切顺利。现在,我用另一个代码进行了尝试,但相同的代码不起作用。

它似乎与字符编码有关,尽管我没有指定任何内容(并且不知道在哪里执行此操作)。

Double age = resultSet.getDouble("âge");

适用于第一个数据库文件,在另一个数据库文件上给出带有“未找到列”的 SQLException。在有问题的数据库上,resultSet.getMetaData().getColumnName(3)(同一列)给出“?ge”。

更新:看来数据库之间的结果实际上是一致的。我看到的差异是因为第一次导入是从 EJB 项目中的类运行的(我运行了某个类的 main 方法,而不是应用程序服务器中的 EJB 模块)。第二次导入是在一个新的独立项目上完成的。独立 Java 项目总是会因此异常而失败,但在第一个项目中运行相同的代码总是有效。

问题在这里以另一种方式表述:https://stackoverflow.com/questions/6519517/getting-ms-access-column-with-international-character-from-java

最佳答案

通过 JDBC-ODBC 桥和 Access ODBC 驱动程序操作 Access 数据库只能可靠地处理 Windows-1252 字符集中包含的重音字符。在这些情况下,您必须将 Java 源文件的字符编码设置为 cp1252在 Eclipse 中(或在 NetBeans 中将项目的字符编码设置为 windows-1252)。如果您的 Java 源文件编码为 UTF-8,那么如果涉及重音字符,您的代码将无法工作。 (更多详情请参阅我的另一个答案 here 。)

要获得更完整的 Unicode 字符支持,请考虑使用 UCanAccess相反。

关于java - 从 Java 检索具有国际名称的 MS Access 列(编码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6506086/

相关文章:

java - 错误的按钮激活

sql - 不带 FROM 子句的 SELECT

sql - Microsoft Access 和 SQL Azure 性能问题

java - 使用MS Access基础制作授权JFrame

java - 使用 Eclipse(或其他软件)进行远程 Java 开发?

java - 选择抽屉项目后滚动到新选项卡

java - 端点没有适配器。您的端点是否使用 @Endpoint 注释,或者它是否实现了受支持的接口(interface),如 MessageHandler 或 PayloadEndpoint?

c# - 在 C# WinForm 应用程序中嵌入 MS Access 数据库

c# - 查询太复杂。如何修改查询?

java - 通过名称 MyClass.class 加载类 - 这可能吗?