美文网首页
记录一次JavaFX 中文乱码的问题

记录一次JavaFX 中文乱码的问题

作者: QingMings | 来源:发表于2019-04-16 11:55 被阅读0次
背景

之前项目跑在公司的电脑上,Win7 ,JDK8 没有出现乱码问题
最近一次在自己电脑上跑的时候,Win10 ,JDK8 出现了乱码问题

尝试

开始以为是文件编码问题
设置了IDEA的 编码,全部都是UTF-8 结果还是乱码
之后观察到只有MenuBar 上的中文会乱码,我是用了XML 定义的Menu项,以为在解析xml上除了差错。但之前环境上没问题
检查了menubar.xml的文件编码和文本编码,都是TUTF-8


    System.out.println("Default Charset=" + Charset.defaultCharset());
        System.out.println("file.encoding=" + System.getProperty("file.encoding"));
        System.out.println("Default Charset=" + Charset.defaultCharset());
        System.out.println("Default Charset in Use=" + getDefaultCharSet());

输出

Default Charset=UTF-8
file.encoding=UTF-8
Default Charset=UTF-8
Default Charset in Use=UTF8

断点调试了一下,读取到的也确实是没有乱码的,那怎么就到javafx这里乱了呢。

真是 百思不得骑姐

真相了
label.setStyle("-fx-font-family: \"微软雅黑\"; -fx-font-size: 10pt;");

我项目里有很多类似这种的代码,虽然不是我写的(这里不是甩锅),硬编码上去确实不好,建议写在css中。
就是这里的 微软雅黑 导致的。 我当时猜测是不是需要字体的英文名 ?试着改成 Microsoft YaHei ,重启程序,好了。
撒花,搞定了。

相关文章

网友评论

      本文标题:记录一次JavaFX 中文乱码的问题

      本文链接:https://www.haomeiwen.com/subject/twovwqtx.html