Java 与中文字体

时间:2021-12-22 06:35:52

Java web 程序 Linux 环境,如何不修改 JDK/JRE 配置来执行中文?

可以注册字体到运行环境中,如果只有一个地方用到,可以在用到的地方注册一次,如果在系统中有多个地方用到,则可以自定义一个
ServletContextListener, 在容器初始化应用之后加载。
加载代码:

 
 
 
  1. Font font = Font.createFont(Font.TRUETYPE_FONT, File);
  2. GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
  3. ge.registerFont(font);

Java 对字体的支持怎么样?

Java6 以前只支持 TYPE1 font 和 TTF font。之后支持 OTF 格式。但是我的环境是 JDK8, 加载思源黑体 OTF 格式字体正常,但是 Java2D 绘图却是空白。
使用工具将 OTF 转换为 TTF 字体之后则能正常显示。

关于 Java 中文字体,还有什么注意事项?

new Font 时一定要指定正确的名称,比如我们程序用到 思源黑体 SC Bold , 则正确的名称是 Source Han Sans SC Bold。如果字体写错,则会回退到名为 Dialog 的逻辑字体。在支持中文的操作系统(OSX, Windows) 上显示没有问题,到 Linux 环境,显示为豆腐块,坑死了。