gpt4 book ai didi

java - 连接到 MS Access 的 Eclipse 的深不可测的编码行为

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:28 25 4
gpt4 key购买 nike

首先,我对这个问题表示歉意...我听到你说的另一个编码问题。

我一般都在网上和这里的文件中查找过这个问题的答案。

我在 WXP 操作系统上有 Eclipse Indigo。我的 Access 版本较旧 (Office 2000)。

我已经建立了到数据库的 JDBC:ODBC 连接,其中包含法语文本和重音符号。

我得到一个简单的结果集,在控制台和 GUI 中,“?”替换了所有重音字符。我尝试将所有可见设置设置为“UTF-8”,包括 Eclipse 的 .ini 文件 (-Dfile.encoding=UTF-8)。

如果我在应用程序代码中硬编码一个字符串,其中包含法语重音字符,则这些字符串在控制台和 GUI 输出中都可以正常打印。

到目前为止还很平庸。但令我困惑的是,当我在 Eclipse 外部(即从 CMD 窗口)运行时,GUI 组件完美地显示了文本,并带有所有重音符号。虽然 CMD 窗口的任何输出都是乱码,但与 Eclipse 控制台的方式不同(“Ú”等字符替换所有重音字符)。

如果有某种关于如何解决此类问题的诊断流程图......

编辑

连接线:(ragbag是数据库的名称)...

  c = DriverManager.getConnection("jdbc:odbc:ragbag", "", "");

获取RS:

   stmtEntries = c.prepareStatement("SELECT * FROM tblFrEng WHERE French LIKE '%" + searchText + "%'",
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmtEntries.executeQuery();

获取字符串并设置 GUI 行:

   String[] row = new String[]{rs.getString(2),rs.getString(3) };
((DefaultTableModel)terms_table.getModel()).addRow( row );

编辑2

更多“线索”:以下语句和参数列出了我系统上的一个数据库中带有“é”的所有记录...但是当我然后去查看工作 TableView 中的表时,“é”显示为“é”...尽管还有其他记录,其中“é”在工作 TableView 中显示为“é”...但后这些记录并未被 Like 语句选取。此外,尽管 Access 中使用的通配符是“*”,但有效的“通配符”字符是“%”...无论如何。所有将此字符串放入 SELECT 语句(即无参数)的尝试都会失败。

  PreparedStatement stmtEntries = c.prepareStatement( "SELECT * FROM tblNodes WHERE   Title LIKE ?", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmtEntries.setString( 1, "%é%");

最佳答案

when I then go and look at the table in Worksheet view the "é"s appear as"é" ... Although there are other records where "é" is shown as "é" in Worksheet view... but these latter records were NOT picked up by the Like statement

数据库中显然有一些记录,其中字符串被编码为单字节 ANSI 字符(显示为 é),而其他记录中的字符串被编码为多字节 Unicode 字符(显示为 é)。在清理数据库之前,您应该会看到不一致的行为,以便 TextMemo 列中的所有字符串都以相同的方式编码。

如果我没记错的话,旧版本的 Access 期望将文本编码为单字节字符(可能是 Windows-1252 字符集),而较新版本的 Access 期望将字符串编码为多字节 Unicode 字符。如果您打算继续使用非常旧的 Access 2000 格式,您可能应该对单字节字符编码进行标准化。

您可能还想确保 Java 中的默认字符编码与您在数据库中使用的字符编码相匹配。有关在 Java 中设置默认字符编码的更多信息,请查看 here .

关于java - 连接到 MS Access 的 Eclipse 的深不可测的编码行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18943194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com