jdbcodbc-如何将JavaString转换为MS访问代码标准



我是一名java程序员,在我的项目中,我想将特定的字体存储到microsoftaccess数据库中。但在数据库中,它们只显示"???"符号。详细来说,我使用JTextField获取字符串,然后插入到MS数据库表中。但在表字段中,它只显示"???"。有没有像(statement.executeUpdate()这样的方法可以在数据库中显示"Zawgyi-One"字体类型。

提示,我从文本字段中获取字符串并插入到ms访问中,但它只显示"???"。java中有没有将Unicode字符串更改为ASCII的方法?

我上次使用ms访问已经有一段时间了。首先,我不完全确定ms-access是否支持unicode。

假设是这样,您可能会在jdb-odbc连接定义中查找一个参数。现在的情况是,多字节Unicode字符没有被识别,而是作为几个ASCII字符写入数据库。

除了这是错误的,你还会遇到任意长度的问题,因为当这种情况发生时,对于每一个非ascii unicode字符,你的字符串都会比预期的长。我曾经咬过一张名为"带有元音变音符的名字的数据库写入失败"的故障单

:-)

为了检查问题,您可以尝试通过ms访问GUI将其中一个(burmese?)字符写入表中,然后通过JDBC-ODBC读取该表。

如果您真的可以将这些字符存储在ms访问中,那么您的下一步将是调整JDBC-ODBC连接,使这些字符最终出现在Java端。

问题不在于字体。这是因为java存储了一个Unicode字符串(UTF-16),MS Access认为它应该是ASCII,而Unicode值为2字节,与任何内容都不匹配。

您需要按照以下内容编写一个小实用程序:

public static String cleanString(String s) {
    String temp = Normalizer.normalize(s, Normalizer.Form.NFD);
    Pattern pattern = Pattern.compile("\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(temp).replaceAll("");
}

在将输入存储到数据库中之前,请对其进行调用。

相关内容

  • 没有找到相关文章

最新更新