美文网首页
记录一次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