-1

如果我的 mysql 数据库中存储有日语、希腊语、中文、韩语等特殊字符,我将获取的 Java 字符串数据是否完整?

要明确我的问题是,如果我将它们存储在 java 字符串中,我在 mysql 中获取的特殊字符是否完整,并且当我将它们用于 JEditorPane 等文本组件时,我是否能够以字符形式显示它们

     String data;
     ResultSet r = sabiNa.executeQuery();
     while(r.next()) {
         data = r.getString("data");
     }
4

1 回答 1

1

Java 能够存储所有有效的 Unicode 文本。它在内部使用 UTF-16。

如果您正确配置了整个数据路径,所有文本都将被保留。您需要确保:

  • 正确的字符串到达​​ Java(在 Web 应用程序的情况下,提交表单的字符编码)。
  • Java 知道它应该以 UTF-8 与数据库通信,并且数据库知道它应该通过连接期待 UTF-8。在设置数据库连接时确保这一点。
  • 数据以 UTF-8 格式存储在数据库中。

请注意 [the documentation for MySQL]声称UTF-8 无法在基本多语言平面之外存储字符(所有“正常”字符都位于 BMP 内)。UTF-8 本身完全能够存储所有 unicode 字符,并且数据库也应该能够对这些字符进行编码。

Java 本身很好 - 只要记住一些罕见的 unicode 字符实际上是 Java 中的两个字符(称为代理对)。

于 2012-10-26T10:44:22.213 回答