一段java写的纯字母和数字的登录验证码程序,在windows运行正常。部署到阿里云,起初也是正常的。但经过对这台阿里云主机(CentOS 7.4)进行一系列的环境配置(nginx,ffmpeg等)后,验证码变成了乱码,与后台打印的字母数字完全不同。

考虑到代码没有变动,应当是环境的问题。可能是某个时候把centos的字体文件给删除或覆盖了。最后发现可以通过以下方式解决:

1、检查代码使用的字体为Times New Roman

2、在C:\Windows\Fonts下找到“Times New Roman”,这是个文件夹,下面有四个ttf字体文件

3、把C:\Windows\Fonts\Times New Roman下的四个字体文件,上传到阿里云服务器

4、登录阿里云服务器,复制字体文件到系统字体目录

[root@zhangcool-cooler01 ~]# cd /usr/share/fonts
[root@zhangcool-cooler01 fonts]# ls
lyx
[root@zhangcool-cooler01 fonts]# fc-list
/usr/share/fonts/lyx/eufm10.ttf: eufm10:style=LyX
/usr/share/fonts/lyx/cmsy10.ttf: cmsy10:style=LyX
/usr/share/fonts/lyx/msam10.ttf: msam10:style=LyX
/usr/share/fonts/lyx/cmmi10.ttf: cmmi10:style=LyX
/usr/share/fonts/lyx/wasy10.ttf: wasy10:style=LyX
/usr/share/fonts/lyx/esint10.ttf: esint10:style=LyX
/usr/share/fonts/lyx/rsfs10.ttf: rsfs10:style=LyX
/usr/share/fonts/lyx/stmary10.ttf: stmary10:style=LyX
/usr/share/fonts/lyx/cmex10.ttf: cmex10:style=LyX
/usr/share/fonts/lyx/msbm10.ttf: msbm10:style=LyX
/usr/share/fonts/lyx/cmr10.ttf: cmr10:style=LyX
[root@zhangcool-cooler01 fonts]# mkdir timesnr
[root@zhangcool-cooler01 fonts]# mv /opt/soft/times*.ttf ./timesnr
[root@zhangcool-cooler01 fonts]# fc-cache
[root@zhangcool-cooler01 fonts]# fc-list
/usr/share/fonts/lyx/eufm10.ttf: eufm10:style=LyX
/usr/share/fonts/timesnr/timesbi.ttf: Times New Roman:style=Bold Italic,Negreta cursiva,tučné kurzíva,fed kursiv,Fett Kursiv,Έντονα Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,Полужирный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,Krepko poševno,nghiêng đậm,Lodi etzana
/usr/share/fonts/lyx/cmsy10.ttf: cmsy10:style=LyX
/usr/share/fonts/lyx/msam10.ttf: msam10:style=LyX
/usr/share/fonts/lyx/cmmi10.ttf: cmmi10:style=LyX
/usr/share/fonts/timesnr/timesi.ttf: Times New Roman:style=Italic,cursiva,kurzíva,kursiv,Πλάγια,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,Курсив,İtalik,Poševno,nghiêng,Etzana
/usr/share/fonts/lyx/wasy10.ttf: wasy10:style=LyX
/usr/share/fonts/lyx/esint10.ttf: esint10:style=LyX
/usr/share/fonts/lyx/rsfs10.ttf: rsfs10:style=LyX
/usr/share/fonts/lyx/stmary10.ttf: stmary10:style=LyX
/usr/share/fonts/lyx/cmex10.ttf: cmex10:style=LyX
/usr/share/fonts/timesnr/times.ttf: Times New Roman:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,thường,Arrunta
/usr/share/fonts/lyx/msbm10.ttf: msbm10:style=LyX
/usr/share/fonts/timesnr/timesbd.ttf: Times New Roman:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiona,Negrito,Полужирный,Fet,Kalın,Krepko,đậm,Lodia
/usr/share/fonts/lyx/cmr10.ttf: cmr10:style=LyX

5、重启tomcat,重新打开登录页,验证码正常。

其中,第4步,也可以这样做,即把字体文件拷贝到jre的字体目录

[root@zhangcool-cooler01 fonts]# cp /opt/soft/times*.ttf /opt/app/jdk1.8.0_144/jre/lib/fonts/

不管拷贝字体文件到哪里,都需要重启tomcat,才会生效。

centos7识别验证码字体相关推荐

  1. 利用modelarts和物体检测方式识别验证码

    近来有朋友让老山帮忙识别验证码.在github上查看了下,目前开源社区中主要流行以下几种验证码识别方式: tesseract-ocr模块: 这是HP实验室开发由Google 维护的开源 OCR引擎,内 ...

  2. 超级简单的Region对比识别验证码

    在一些验证码相对简单的站点中,停一下,什么是简单?以我现在的图形算法修为,就是对于特定的字符,在生成时,其字符的Region应该是一样的,如(chars.bmp)图片中的6总是这个字体这个字号.... ...

  3. Tesseract(识别验证码)

    [Tesseract]windows 下的安装及简单应用 1.Tesseract安装以及简介 阻碍我们爬虫的.有时候正是在登录或者请求一些数据时候的图形验证码.因此这里我们讲解一种能将图片翻译成文字的 ...

  4. Java识别验证码和图像处理

    阅读本文可能会解决的问题: ① Java识别验证码 ② Tess4J的使用和OCR识别 ③ JavaCV的使用二值化和灰度测试 ④ Java裁剪和缩放图片 ⑤ 如何生成数字&字母验证码 ⑥ . ...

  5. Python使用Cv2模块识别验证码

    目录 业务需求 需求分析 代码一 结果分析 代码二 代码模块 结果分析 总结经验 参考文献 业务需求 识别验证码图片中的数字信息,用python的图形表示出来了 需求分析 使用Cv2模块.pytess ...

  6. 利用机器学习识别验证码(从0到1)

    最近喜欢先把测试结果图放前面.大家可以先看下效果. 识别速度并不是很快,代码并没有进一步优化. 本篇主要讲的是 从制作验证码开始,到我们利用机器学习识别出来结果的过程. 利用机器学习识别验证码的思路是 ...

  7. Python Tesseract识别验证码

    学习记录, 仅供参考 文章目录 准备工作 tesseract初试 下载样本 图片降噪 tesseract初训练 tesseract样本训练 测试训练结果 我们在写爬虫的时候经常遇到网页需要登陆的情况, ...

  8. CentOS7安装新字体

    CentOS7安装新字体 概述 安装字体库 安装 查找所需字体 创建存放字体的目录 修改algerian目录的权限 安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件 ...

  9. python识别花草_Python识别验证码的另一种花样玩法

    概述 简介 坑! 安装 Tesseract-OCR 使用 pytesseract 识别验证码 高级玩法 - 除线 简介 首先呢,简单的验证码是这样的: code.jpg 不是这样的: image.pn ...

最新文章

  1. markdown编辑器 typora的安装和使用
  2. 复杂的结构化存取(一)
  3. 【Java】 剑指offer(40) 最小的k个数
  4. cnn识别cifar10、cifar100(pytorch)
  5. 避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块?
  6. python安装、anaconda安装、pycharm安装(学习笔记,自己重新整理后的内容,最新版本工具安装)
  7. 我们为什么要做数据分析?
  8. 利用SQL语句对数据进行操作:插入、更新与删除数据行
  9. java13性能,Spring Boot 2.2.0,性能提升+支持Java13
  10. 替换 centOS6.5 默认安装的旧版 firefox ,安装最新版 firefox 全过程
  11. 文件系统操作-分区及格式化、挂载
  12. PostgresSQL模式
  13. 数据结构上机实践第三周项目2 - 建设“顺序表”算法库
  14. 0. SQL Server监控清单
  15. 西威变频器avo下载调试资料_超能士变频器报输出缺相维修
  16. HTTP协议之3XX状态码
  17. 【软考软件评测师】2010年下综合知识历年真题
  18. 使用公司域名邮箱的好处有哪些?企业邮箱域名注册流程是什么?
  19. FIX协议教程1-什么是FIX会话和管理消息
  20. Datax-web版安装(含安装包)

热门文章

  1. 万圣节活动没灵感?收下这份万圣节海报文案大礼包!
  2. 小小知识点(二十七)20大5G关键技术
  3. 解决MySQL3306端口被占用 docker启动不了MySQL容器
  4. [开源软件开发导论课程——第一次作业]有关开源软件开发的5个问题
  5. win10密码忘了怎么办_苹果id密码忘了怎么办 apple id密码忘了解决方法【详解】...
  6. FileInputStream概述
  7. 985毕业,半路出家28岁进军Python,坚持奋斗了三年现如今年薪36W+
  8. 吴永辉教授2021年讲课3-4题解
  9. Jmeter(115)——在jmeter中写入xls文件的基本方法
  10. c#语言switch+case用法,C# switch case语句