CentOS 7.4 java验证码乱码的问题

 

新服务器配置发布网站

配置后程序顺利启动
在登录时发现验证码无法识别
显示出了图片,但是字是乱码

初步估计应该是字体问题

ssh登录服务器查看默认字体

#fc-match

msam10.ttf: "msam10" "LyX"
确认是字体问题

解决字体问题

1. 从windows系统拷贝 微软雅黑字体

打开文件夹 C:WindowsFonts
选中微软雅黑字体,复制
拷贝到别的文件夹

2. 将字体文件上传到centos服务器

#mkdir /usr/local/font/default
将字体文件上传到default目录中

3.更新字体缓存

#fc-cache

4.再次查看默认字体

#fc-match

msyh.ttc: "Microsoft YaHei" "Normal"
字体正确

5.重启tomcat

#systemctl restart tomcat
重启之后 验证码显示正确

 

 

 

参考

 

 

1. widonws下载字体文件到Linux

   windows的字体比较多,其字体文件位于 C:WINDOWSFonts 。 从其中copy相应的字体到Linux系统的 /usr/share/font/下的文件夹中。以arial字体为例:

# mkdir /usr/share/fonts/arial
# cp arial*.ttf /usr/share/fonts/arial/

2. 为刚加入的字体设置缓存使之有效

# cd /usr/share/font/arial
# fc-cache -fv

   经过这样的设置后,即可在Gnome界面的 系统——首选项——外观——字体 中进行字体的选择了。

3. 设置gunplot对arial的选择路径

   本文首页提示的错误是由于程序调用gunplot造成,必须让gunplot识别arial字体所在的路径才行。

$ export GDFONTPATH=/usr/share/fonts/arial
$ export GNUPLOT_DEFAULT_GDFONT="arial"

将字体文件拷到 Linux 服务器上,然后调用 fc-cache 更新一下 
列出所有已经安装的中文字体,如果还没有安装中文字体

#fc-list :lang-zh
宋体,SimSun:style=Regular

看字体是怎么走的 
fc-match Arial -s

查看下本地语言设置 
locale

因为不需要全局修改LC_CTYPE,所以在命令前面加一下就好了。为了方便写个alias 
alias casperjs=’LC_CTYPE=en_US.UTF-8 casperjs’

原文地址:https://www.cnblogs.com/cheyunhua/p/9607701.html