记一次 Java Font 跨平台中文乱码
源码
1 | Color color=new Color(0, 0, 0, 200); |
情景
这套代码在 windows 平台上面跑的时候是完全没有问题的,但是在项目迁移到 Linux 的时候突然出现了中文乱码的问题。
解决方案
一开始猜想是在生成或使用字符串的时候,字符串的编码格式错误,但是断点监测全流程发现没有丝毫问题,是将文字写到图片上面的时候突然就乱码了,搜了一下发现绘图时乱码可能是字体不支持的问题,于是开始查看 Linux 的字体库。
以下命令皆为 CentOS7.2 的运行环境。
1 | # CentOS7 安装字体库 |
这里将 windows 平台的 C:\windows\Fonts
下的微软雅黑字体拷贝到 /usr/share/fonts
就是下面这三个文件msyh.ttc
、msyhl.ttc
、msyhbd.ttc
1 | # 安装字体并刷新缓存 |
运行结束正常输出汉字。