我在特定的Windows 7机器上遇到了一个JavaFX应用程序问题,其中非英文文本显示不正确。字体在所有地方都设置为System,据我所知,在Windows 7上应该是Segoe UI(这确实是此机器上的默认字体)。
系统中其他部分(非Java部分)的所有文本都显示正确,因此字体存在并具有适当的字符集,这使我相信由于某种原因JavaFX默默地无法加载它,而是使用不同的字体。
我的问题是-如何找出JavaFX在特定系统上实际使用的字体?我尝试了Font.getDefault().getName(),但它只返回“System”,这对我毫无意义。 使用-Djavafx.verbose=true等也没有产生任何有价值的结果。
在你问之前-是的,应用程序是Unicode,并且在其他机器上,包括Windows和Linux,都可以正常工作。我想尝试诊断问题,以便我不必采取重新安装机器(目前无法选项)或像那样激动人心的事情。
编辑:似乎Segoe UI实际上不包含该特定字符集。尽管如此,系统的其余部分都可以正常工作。 因此,更准确的问题是-JavaFX为什么无法意识到这一点并使用回退?我该如何调试/诊断出错了什么?
系统中其他部分(非Java部分)的所有文本都显示正确,因此字体存在并具有适当的字符集,这使我相信由于某种原因JavaFX默默地无法加载它,而是使用不同的字体。
我的问题是-如何找出JavaFX在特定系统上实际使用的字体?我尝试了Font.getDefault().getName(),但它只返回“System”,这对我毫无意义。 使用-Djavafx.verbose=true等也没有产生任何有价值的结果。
在你问之前-是的,应用程序是Unicode,并且在其他机器上,包括Windows和Linux,都可以正常工作。我想尝试诊断问题,以便我不必采取重新安装机器(目前无法选项)或像那样激动人心的事情。
编辑:似乎Segoe UI实际上不包含该特定字符集。尽管如此,系统的其余部分都可以正常工作。 因此,更准确的问题是-JavaFX为什么无法意识到这一点并使用回退?我该如何调试/诊断出错了什么?