Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java字符串转换为MS access代码标准_Java_Jdbc Odbc - Fatal编程技术网

如何将Java字符串转换为MS access代码标准

如何将Java字符串转换为MS access代码标准,java,jdbc-odbc,Java,Jdbc Odbc,我是一名java程序员,在我的项目中,我希望将特定字体存储到microsoft access数据库中。但在他们的数据库中只显示“?”符号。关于详细信息,我使用JTextField获取字符串,然后插入到MS数据库表中。但在表格字段中,它只显示“?”。是否有任何类似(statement.executeUpdate())的方法可以在数据库中显示“Zawgyi One”字体类型 提示,我从文本字段获取字符串并插入ms access,但它只显示“?”。有没有什么方法可以在java中将Unicode字符串更

我是一名java程序员,在我的项目中,我希望将特定字体存储到microsoft access数据库中。但在他们的数据库中只显示“?”符号。关于详细信息,我使用JTextField获取字符串,然后插入到MS数据库表中。但在表格字段中,它只显示“?”。是否有任何类似(statement.executeUpdate())的方法可以在数据库中显示“Zawgyi One”字体类型


提示,我从文本字段获取字符串并插入ms access,但它只显示“?”。有没有什么方法可以在java中将Unicode字符串更改为ASCII?

问题不在于字体。这是因为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("");
}

在将输入存储到数据库之前,先调用它。

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

假设是这样,您可以在jdb odbc连接定义中查找参数。 您现在知道的是,多字节Unicode字符不能被识别为多字节Unicode字符,而是作为多个ASCII字符写入数据库

除此之外,您还会遇到任意长度的问题,因为当发生这种情况时,对于每一个非ascii unicode字符,您的字符串都会比预期的长。 有一次,我在一张名为“使用Umlaut对名称进行数据库写入失败”的故障单上咬了一口牙

:-)

要检查这些内容,您可以尝试通过ms access GUI将一个(缅甸?)字符写入表中,然后通过JDBC-ODBC读取该表


如果您确实可以在ms access中存储这些字符,那么下一步就是调整JDBC-ODBC连接,使其在Java端具有这些字符。

字符串就是字符串。它没有任何字体。您可能会看到问号,因为您正在保存MS Access使用的编码不支持的Unicode字符,或者因为您用于查看数据库中的值的工具没有使用可以显示这些字符的字符。因此,我必须如何在MS Access中显示正确的数据。提示,我从文本字段获取字符串并插入ms access,但它只显示“?”。在java中是否有任何方法可以将Unicode字符串更改为ASCII?