尝试从 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 中的希腊词作为问号 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
获取从 PHP ADO 连接返回到 MS-Access DB 的 JSON
ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录