部署机器

操作系统:centos 7

java版本: java version "1.7.0_80"

问题症状

将一个java web的程序部署到了两台配置相同的服务器上之后(服务器1、服务器2),程序都正常启动,当前端请求注册服务时,会向后台请求图片验证码,然而(服务器1)验证码出现了如图1所示的乱码问题,图二为(服务器2)正常的验证码显示。

图1

图2

问题探索

猜测1:java字符的编码问题

探索过程:将字符编码转换成utf-8编码,但是乱码问题没有得到解决

猜测2:服务器字体问题,由于两台服务器的java环境是一样的,因此猜测两台服务器的字体配置不一致导致的。

探索过程:(ps:以下操作均在linux的root权限下操作)

1.查看两台服务器的字体版本,通过在服务器上输入如下指令:

rpm -qa | grep font

服务器1

服务器2

上面的两幅图分别显示了服务器1和服务器2的字体库版本,可以看出两台服务器的字体库版本是一样的,因此排除了字体库版本不一样的假设。

2.查看linux字体库里面的字体有哪些

怎样知道字体库的位置呢,通过输入如下指令就可以找到:

find / -name fonts

进入上图标出的文件夹,指令为:

cd /usr/share/fonts

进入文件夹,发现服务器1的文件夹下有一个文件夹lxy,而服务器2该文件夹下没有文件夹,下图显示了文件文件夹lxy的内容。

解决方案

将lxy文件夹移动到其他的文件夹(ps:貌似只改文件夹的名称是不行的,必须将该文件夹移出fonts文件夹),然后重启web服务,问题得到解决。指令:

mv lxy tager

总结

该问题是linux字体库里面的字体文件不同造成的,我猜测java加载字体库时先加载linux系统自带的字体库,如果找不到对应的字体库就会去找java自己的字体库(ps:只是本人的猜测,是否是这样,有待哪位大神来解锁)。

java 验证码 中文乱码_问题记录-java图片验证码显示乱码相关推荐

  1. java 将中文字符转为英文,java 将中文字符号转为英文

    java 将中文字符转为英文,java 将中文字符号转为英文 package test;import java.io.UnsupportedEncodingException;public class ...

  2. mysql java中文乱码_解决Mysql+Java的中文乱码问题(学习心得)

    最近几天一直都在学JSP,我用的数据库是Mysql.在连接数据库的过程中,刚开始我只是简单的执行了查询命令,发现从数据库取出的中文数据全部显示成了乱码,查了一些资料之后,我先用了下面的一个转换函数,值 ...

  3. java 庖丁解牛中文分词_庖丁解牛中文分词包

    http://code.google.com/p/paoding/ Paoding Analysis摘要 Paoding's Knives 中文分词具有极 高效率 和 高扩展性 .引入隐喻,采用完全的 ...

  4. java xml用word打开乱码_为什么word文档打开是乱码

    为什么word文档打开是乱码 篇一:word文档变成乱码的两种解决方法 word文档变成乱码的两种解决方法 一.文档格式法 这种方法是将损坏的Word文档转换为另一种格式,然后再将其转换回Word文档 ...

  5. 新手学java 学哪方面_初学者学Java应从哪些方面学习?

    原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...

  6. java获取机器号_(转)JAVA获得机器码的实现

    http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码  收藏代码 /** *生成机 ...

  7. java gui中文变方块_150道Java面试基础题(含答案)

    1)Java 中能创建 volatile 数组吗? 能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引用指向的数组,将会受到 vo ...

  8. java ee是编程语言_什么是Java编程语言?

    java ee是编程语言 什么是Java? (What is Java?) Java is an Object-Oriented Programming Language. It was first ...

  9. java 极客漫画_漫画:Java如何实现热更新?

    Arthas(阿尔萨斯)是 Alibaba 开源的一款 Java 诊断工具,使用它我们可以监控和排查 Java 程序,然而它还提供了非常实用的 Java 热更新功能. 所谓的 Java 热更新是指在不 ...

最新文章

  1. OpenGL 关于旧版glut和新版本glfw和glad的环境配置
  2. 疯狂ios讲义之网页控件(UIWebView)
  3. nfa确定化 dfa最小化_深度学习中的优化:梯度下降,确定全局最优值或与之接近的局部最优值...
  4. 给SAP Spartacus B2B list增加用户提示信息
  5. 如何在Windows 8.1中获取Windows 10样式的开始菜单
  6. lambdas 排序_Java8 Lambdas:解释性能缺陷的排序
  7. Linux 命令之 less -- 分屏上下翻页浏览文件内容(查看文件内容/显示文件内容)
  8. 【运动快乐】享受赤脚慢跑 收获健康快乐
  9. 备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?
  10. python字典的键可以是int吗_Python:大int键的快速字典
  11. Mac电脑如何一键打开常用的app?
  12. PCB中 D-Subminiature(DB接口) 连接器系列分类及带有3D封装绘制
  13. Cisco Packet Tracer 思科模拟器交换机的链路聚合技术
  14. DTcms-【数据库】-关系分析
  15. MP4Box切割mp4视频文件
  16. 关于tomcat启动出现To prevent a memory leak, the JDBC Driver has been forcibly unregistered.问题
  17. 梦幻109鸿蒙量星太难杀,梦幻西游:维摩诘杀怪最少攻略,20分钟轻松做完!
  18. 5G网络身份识别---详解5G-GUTI
  19. java 批量设置单元格边框,VC下设置Excel单元格的边框 (转)
  20. Dreamweaver cs 6无法添加浏览器 亲测有效!!!

热门文章

  1. Windows系统解压zip文件之后乱码的问题的原因和解决方法
  2. 树莓派4b学习笔记一:树莓派4B开箱简单配置(远程工具+opencv+pytorch1.3)
  3. html动态添加图片不显示不出来,解决 viewer.js 动态更新图片导致无法预览的问题...
  4. 微信小程序中从缓存storage获取的的数据
  5. linux写iso文件到u盘,怎么把ISO写入U盘
  6. 加州自驾游交规停车等注意事项
  7. 管易云与金蝶云星空对接集成采购入库查询打通采购入库新增
  8. 【Vue】数据改变,DOM不渲染问题
  9. 基于Android的智能浇花控制系统设计
  10. Google 亚马逊水域和波兰街景上线