【问题标题】:Applications that require Java are having strange tab namings需要 Java 的应用程序有奇怪的选项卡命名
【发布时间】:2020-01-26 16:09:01
【问题描述】:

我遇到了需要运行 Java 的应用程序的问题,例如 Eclipse、DBeaver 等。我安装了 Java 11 JDK,但每个应用程序上的选项卡都显示奇怪的名称。我确实认为问题出在 Java 上,我真的很想知道是否有其他人遇到过这种问题,以及他们是如何处理的。这让我快疯了。我尝试卸载并重新安装 JDK,但没有成功解决我的问题。

【问题讨论】:

    标签: java eclipse dbeaver


    【解决方案1】:

    我没有遇到您所看到的问题,但是我可以提出一个可能的原因。
    Java 9+ 使用 UTF-8 表示字符串,而不是以前使用的 UTF-16(我认为)。这意味着字符在其表示中将采用不同数量的字节。我建议重新安装出现问题的软件包,这些(如果它们是基于 java 的)可能是用较新的 java 构建的,新安装希望不会显示这个问题。

    【讨论】:

    • Java 9+ 不对字符串使用 UTF-8。如果字符串中的所有字符都可以用这种方式表示,则字符串的内部表示是 ISO-8859-1 字节数组,否则字节数组是 UTF-16。字符串 API 仍然像往常一样是 UTF-16。这都可以通过命令行标志禁用。 Eclipse 对此没有任何问题。
    • @greg-449 你确定吗,我知道这是迁移到 java 9 时发生的变化之一?
    • ISO-8859-1 的使用是 Java 9 的变化——所谓的“紧凑字符串”。但这一切都被隐藏起来了,不会以任何方式改变字符串 API。查看 String 类的源代码很容易看出。字符串现在有一个名为 coder 的字段,其值为 LATIN1UTF16(拉丁文 1 是 ISO-8859-1 的另一个名称)
    • 谢谢,我明白了,这是有用的知识。您认为这会影响 OP 的问题吗?
    • 当前版本的 Eclipse 在 Java 8 到 Java 13 上运行良好,旧版本根本无法运行。我在 Eclipse 错误数据库中找不到任何类似的报告,所以我真的不知道发生了什么。
    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 2020-11-18
    • 2017-01-07
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多