首先,我为这个问题道歉......我听到你说的另一个编码问题。
我已经在网上和这里的档案中查看了这个问题的答案。
我在 WXP 操作系统上有 Eclipse Indigo。我的 Access 版本较旧(Office 2000)。
我已经建立了一个到 dbase 的 JDBC:ODBC 连接,其中包含法语文本和重音符号。
我得到一个简单的 ResultSet,在控制台和 GUI 中,“?”替换所有重音字符。我尝试将所有设置都设置为“UTF-8”,包括 Eclipse 的 .ini 文件 (-Dfile.encoding=UTF-8)。
如果我在应用程序代码中硬编码一个带有法语重音字符的字符串,这些字符串在控制台和 GUI 输出中都可以正常打印。
到目前为止如此平庸。但是让我感到困惑的是,当我运行 OUTSIDE 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();
getString 并设置 GUI 行:
String[] row = new String[]{rs.getString(2),rs.getString(3) };
((DefaultTableModel)terms_table.getModel()).addRow( row );
编辑2
更多“线索”:以下语句和参数列出了我系统上的一个数据库中所有带有“é”的记录......但是当我然后去查看工作表视图中的表格时,“é”显示为“ é" ...尽管在工作表视图中“é”显示为“é”的其他记录...但后一个记录没有被 Like 语句拾取。此外,尽管Access中使用的通配符是“*”,但有效的“通配符”字符是“%”......无论如何。将此字符串放入 SELECT 语句(即无参数)的所有尝试均失败。
PreparedStatement stmtEntries = c.prepareStatement( "SELECT * FROM tblNodes WHERE Title LIKE ?", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
stmtEntries.setString( 1, "%é%");