趣文网 > 作文大全

linux服务器上生成图片汉字乱码

2020-12-31 21:25:01
相关推荐

最近公司开发一个项目,使用的是linux 环境服务器。使用javaweb生成一个图片文件,结果发现中文显示都是如图所示的乱码小方格。

正常的这句话是“我爱我的祖国天安门”。

先检查了数据传输的问题,在服务器上可以打印出来汉字,通过xshall连接发现新建文件设置成中文名称也没有问题。不知道为啥是竖着的。。。。

可以写个小程序在服务器上运行下,查看下服务器目前支持的字符集,运行结果如图所示:

程序的写法很简单,可以在github上下载,地址是:git@github.com:quanyecha1989/DailyCode.git

然后我们需要在linux服务器上添加上相应的字符集即可。就是那种各种以*.ttf*.ttc结尾的东西。Windows上是在C:WindowsFonts这个目录下。我们为了方便可以直接用ftp把Windows这个文件夹下的文件都上传到linux服务器上的usr/share/fonts文件夹下。在上传之前我们可以看到linux服务器的这个文件夹下面东西不是很多

其他的文件是我测试用的,所以删掉了,我的服务器下面是只有一个lyx这个文件,进入这个文件可以看到里面是相应的字符集。

当然我们也可以建立一个文件夹叫chinese然后把Windows上的字体集传上来。

然后在运行测试程序,可以先看下现在系统支持的字体:

其他的很多我也不清楚,有大神可以都给解释一下,这时候在重新生成图片的话就变得正常了。

已经变得正常了。到此基本上就完成了,剩下的可能还需要设置tomcat或者docker里面的字体集的问题。都是一个一个的大坑啊。刚开始的时候没有想到直接写个小程序在服务器上测试,不然的话会更容易定位到这个问题。还有网上有很多需要linux安装各种东西的可能也可以吧,我选择了个更容易的,不需要再服务器上装外的东西。

到这里并没有结束,因为java的安装包里面也有一个fonts文件夹,路径是/usr/java/jdk1.8.0_181-amd64/jre/lib/fonts。在这个文件夹里面我们也可以看出来是没有中文字符集的,那么如果我们仅仅把字符集加到这个里面,而linux系统里面的fonts里面不在添加这些字符集,我们还能输出正确么?

首先删除了usr/share/fonts里面的添加的chinese文件夹,然后重新生成汉字图片,发现变回去方格状态了。

然后在这个文件夹下面添加一个chinese文件夹,并且把字体集导入。

然后在运行测试程序,看下会生成什么样子的图片

还是乱码,证明jre里面的字体集并没有起作用。如果使用了docker容器开发的话,还会有一个坑,我们下次讲解。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

快乐作文500字 作文拼音 诱惑作文 忆 作文 初一作文素材 园博园作文 沟通的作文 500字作文初一 《我的愿望》的作文 那个人作文 初中作文700字 写作文软件 600字叙事作文 友谊英语作文 交警 作文 清廉作文 购物英语作文 冲突作文 作文万能结尾 作文我的弟弟 五上作文 四年级小学生作文 谦虚作文 一篇作文400字 最珍贵作文 身影作文 枫叶作文 写作业的作文 温暖600字作文 一束光作文