JavaFX 标签中的奇怪字符

Weird characters in JavaFX Labels

提问人:Matheus Markies 提问时间:11/16/2023 最后编辑:jewelseaMatheus Markies 更新时间:11/16/2023 访问量:80

问:

下午好。 我在使用 JavaFX 时遇到了一些问题,基本上我通过代码创建了我的标签(我使用的是 IntelliJ IDE):

来自 Card 对象(包含 Label 的对象)的调用:

   vibrationCard = new Card("METRICA", "Eixos de vibração", "");
   fftCard = new Card("METRICA", "FFT", "");

对象卡(包含标签的对象)

    public Card(String topLabel, String title, String bottomLabel){
    
            cardTitleLabel = new Label(title);
            cardTitleLabel.setFont(new Font(14.0));
    
    //Code remainder
            cardStruct.getChildren().addAll(
                    cardTopLabel,
                    cardTitleHeaderHBox,
                    separator,
                    contentAnchorPane,
                    cardBottomLabel
            );
    
            getChildren().addAll(cardStruct);
        }

问题是,我的标签有奇怪的字符,它们应该是重音字母:

Exemple 1

Example 2

我已经将 IDE 设置为 UTF-8,并且还尝试转换字符串的格式以查看是否可以修复它,但它不起作用。

Example 3

爪哇 JavaFX

评论

0赞 g00se 11/16/2023
cardTitleLabel = new Label(title)说什么?
2赞 Slaw 11/16/2023
我无法用简单的.我不明白为什么您的代码中有 convert-to-utf8-bytes-then-back-to-a-string 位。你期望这样做做什么?因为所有这一切都会给你一个字符串,其中包含与以前完全相同的字符序列。new Label("Eixos de vibração")
1赞 g00se 11/16/2023
您的本机文件编码可能不是 UTF-8
2赞 Slaw 11/16/2023
您确定在编译代码时指定了吗?-encoding utf-8
0赞 Matheus Markies 11/16/2023
如何格式化文件?

答:

6赞 David Weber 11/16/2023 #1

溶液:

您必须确保

  1. 编辑器中的 Java 源文件使用 UTF-8 保存
  2. 编译器使用 UTF-8 读取它们

如果您使用 Maven,请将其添加到您的 pom.xml 中:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

如果您使用 Gradle,请将其添加到 build.gradle 中:

tasks.withType(JavaCompile) {options.encoding = 'UTF-8'}

附加说明:

有时,从 UTF-8 转换和转换 UTF-8 很棘手。作为最后的手段,删除文件,使用复制粘贴重写其内容,然后使用键盘而不是复制粘贴手动重写字符串,因为他们自己的字符可能采用错误的格式。这也可以通过将 Internet 或第三方文档中的字符复制粘贴到 String 中来实现。