ImageIO生成图片,中文显示异常
一开始我是怀疑字体编码可能有冲突,通过Sy(";)查看我本机的编码是GBK,而我服务器(Centos7)上的编码是UTF-8。因此,我在生成图片时修改了系统编码,但不管用,照常还是显示一个个方框。
后来在不断google中看有的网友提到“字体”,因为Centos中没有中文字体,所以才造成上图中的一个个方框(一想也对,乱码的话应该是一些不规则的符号,不能是一个个方框)。
先查看下服务器字体列表
[root@iZ2zez5rp1bmsZ share]# cd fc-list
bash: cd: fc-list: No such file or directory
悲哀,连字体库都没有!
找到方法就去干!
安装字体库
# 先安装fontconfig,用fontconfig来安装字体库
[root@iZ2zebjvdi1bmsZ share]# yum -y install fontconfig
Loaded plugins: fastestmirror
…
Installed:
0:2.10.95-10.el7
Dependency Installed:
0:1.44-8.el7
Complete!
fontconfig安装成功后在/usr/share目录中就会看到fonts和fontconfig两个目录(没装fontconfig之前是没有这两个目录的)
接下来就可以添加字体库了
添加字体
添加字体之前需要先下载相应的字体文件,博主用的是(宋体)字体库,可以通过下方链接下载字体包
下载
http://ofndwaoqp.bkt.clouddn.com/
当然也可以去windows系统下的C:/windows/fonts目录下寻找合适的字体
字体文件准备好后,下边就正式开发操作
首先在/usr/share/fonts/目录下创建目录(名称随意)
mkdir chinese
然后将上方提供的
zip包中的两个文件全部解压并放到新建的目录(chinese)中,
然后修改chinese目录的权限
chmod -R 755 /usr/share/fonts/chinese
小知识:755代表的意思:文件所有者享有读、写和执行的权限(所有权),同组用户和其他用户只享有读取和执行的权限,没有写入的权限(详情可自行百度哈)
接下来需要安装ttmkfdir,这个命令的作用是搜索目录中所有的字体信息,汇总生成文件。
[root@iZ2zebjvditp1bmsZ fonts]# yum -y install ttmkfdir
Loaded plugins: fastestmirror
…
Installed:
0:3.0.9-42.el7
Complete!
然后执行ttmkfdir命令:
[root@iZ2zsZ fonts]# ttmkfdir -e /usr/share/X11/fonts/encoding
最后修改字体配置文件
vi /etc/fon
如下添加配置
配置系统字体
<dir>/usr/share/fonts/chinese</dir>
最后保存文件并执行fc-cache进行刷新字体缓存
OK,到此字体就安装完成,在看一下字体列表:
[root@iZ2zebrp1bmsZ fonts]# fc-list
/usr/share/fonts/chinese: SimSun-PUA,宋体-PUA:style=Regular
/usr/share/fonts/chinese: NSimSun,新宋体:style=Regular
/usr/share/fonts/chinese/: SimSun,宋体:style=Regular
/usr/share/fonts/chinese: SimSun,宋体:style=Regular
重新测试生成文件
参考资料
ImageIO drawString 中文乱码问题
Java 的系统属性 和 的区别
Linux CentOS 7 安装字体库 & 中文字体
1.文章《为什么宋体-pua 无法显示数字》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《为什么宋体-pua 无法显示数字》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好