JavaFX 标签中的奇怪字符

1 java javafx

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

\n

来自卡片对象(包含标签的对象)的调用:

\n
   vibrationCard = new Card("METRICA", "Eixos de vibra\xc3\xa7\xc3\xa3o", "");\n   fftCard = new Card("METRICA", "FFT", "");\n\n
Run Code Online (Sandbox Code Playgroud)\n

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

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

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

\n

例1

\n

实施例2

\n

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

\n

实施例3

\n

Dav*_*ber 6

解决方案:

您必须确保

  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>
Run Code Online (Sandbox Code Playgroud)

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

tasks.withType(JavaCompile) {options.encoding = 'UTF-8'}
Run Code Online (Sandbox Code Playgroud)

补充笔记:

UTF-8 之间的转换有时很棘手。作为最后的手段,删除文件,使用复制粘贴重写其内容,并使用键盘而不是复制粘贴手动重写字符串,因为字符本身的格式可能错误。通过将互联网或第三方文档中的字符复制粘贴到字符串中也可以发生这种情况。