尝试从 MS Access DB 检索字段值时,Java 中的希腊词作为问号 [重复]

Posted

技术标签:

【中文标题】尝试从 MS Access DB 检索字段值时,Java 中的希腊词作为问号 [重复]【英文标题】:Greek Words as Question Marks in java when trying to retrieve field value from MS Access DB [duplicate] 【发布时间】:2014-07-09 08:27:18 【问题描述】:

我正在开发一个需要与 MS Access 数据库建立连接的项目。 问题是,当我尝试从用希腊语编写的字段中检索值时,每个字母都显示为问号。有人知道如何解决吗?

下面是我出现问题的部分代码

String KTA1 = KA4prwta.getText() + KA3teleutaia.getText();//KTA
        String selectSQL = "SELECT * FROM [" + tablename + " ] WHERE KTA ='" + KTA1 + "'";
        try 
            PreparedStatement preparedStatement = conn.prepareStatement(selectSQL);

            ResultSet rs = preparedStatement.executeQuery();
            while (rs.next()) 
                ep = rs.getString("EPON");
                on = rs.getString("ONOM");
            
            Epwnumotf.setText(ep);
            Onomatf.setText(on);
         catch (SQLException ex) 
            Logger.getLogger(DBinsert.class.getName()).log(Level.SEVERE, null, ex);
        

【问题讨论】:

确保使用的字符编码匹配。如果不是,一些特殊字符会变成? 在调试器中查看是否正确? no 值仍然是问号 数据库的编码是什么,您是否尝试将编码告诉您的 JDBC 驱动程序? 你在使用Windows下的JDBC-ODBC Bridge和Access ODBC驱动吗? 【参考方案1】:

您遇到的问题听起来像是语言编码问题,但如果没有更多信息,很难提出解决方案。

您在哪里“看到”这些问号?无论在哪里,您都应该尝试使用多字节编码的显示语言,看看是否能解决您的问题。

例如如果您在网站上显示,请确保您显示的是 UTF8。

【讨论】:

我想你的意思是character encoding,Java 不知道如何翻译语言,但如果可以的话,它会很酷/很棒。 ;) 抱歉,是的 - 我的意思是字符编码 - 今天早上我的大脑还没有全速运转。不过不知道你说的翻译是什么意思。 我的意思是这样的translate.google.com,但使用的是Java API。 当我将值从 DB 字段设置为 GUI 的文本字段时,我看到问号。同样的问题出现在输出控制台中。我猜是编码问题,因为我从数据库中检索值字段。英文字符完美显示。 您可能使用的是单字节字符集。尝试双字节字符集,看看您的问题是否仍然存在。

以上是关于尝试从 MS Access DB 检索字段值时,Java 中的希腊词作为问号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 从 MS Access DB 中检索表关系

获取从 PHP ADO 连接返回到 MS-Access DB 的 JSON

ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录

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

MS Access SQL:聚合最小值但检索其他字段

我遇到了一些关于从 ms access 数据库中检索数据的问题