解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题

现象:

php编译参数:

说明:

如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。imagettftext()函数是将字符写入到图片的函数,这个问题就是由这个函数导致的。

在网上查了好几篇教程不全,以下为本人生产实践操作,在zabbix3.2版本,php7.2版本

方法一:

重新编译安装php,禁用-enable-gd-jis-conv选项,这种方式代价较大;

方法二:

因生产环境php使用年限比较久,不知道是否有应用在使用,不敢轻易重新编译,故按照方法二解决

第一步:

在/etc/nginx/html/zabbix/include中修改graphs.inc.php文件(先备份)

cp graphs.inc.php graphs.inc.php.bak

vim graphs.inc.php #在末尾添加如下代码

function to_entities($string){

$len = strlen($string);

$buf = "";

for($i = 0; $i < $len; $i++){

if (ord($string[$i]) <= 127){

$buf .= $string[$i];

} else if (ord ($string[$i]) <192){

//unexpected 2nd, 3rd or 4th byte

$buf .= "?";

} else if (ord ($string[$i]) <224){

//first byte of 2-byte seq

$buf .= sprintf("%d;",

((ord($string[$i + 0]) & 31) << 6) +

(ord($string[$i + 1]) & 63)

);

$i += 1;

} else if (ord ($string[$i]) <240){

//first byte of 3-byte seq

$buf .= sprintf("%d;",

((ord($string[$i + 0]) & 15) << 12) +

((ord($string[$i + 1]) & 63) << 6) +

(ord($string[$i + 2]) & 63)

);

$i += 2;

} else {

//first byte of 4-byte seq

$buf .= sprintf("%d;",

((ord($string[$i + 0]) & 7) << 18) +

((ord($string[$i + 1]) & 63) << 12) +

((ord($string[$i + 2]) & 63) << 6) +

(ord($string[$i + 3]) & 63)

);

$i += 3;

}

}

return $buf;

}

第二步:

找到该文件中imagettftext()函数(一共三处)

将最后一个参数$string修改为to_entities($string),三处都需要修改,无需重启,刷新即可解决问题。

总结

以上所述是小编给大家介绍的解决zabbix监控因php问题导致图形界面中文乱码方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

zabbix mysql设置中文乱码_解决zabbix监控因php问题导致图形界面中文乱码方法相关推荐

  1. sublime报错信息乱码_解决Sublime Text 3在GBK编码下的中文乱码问题

    按ctrl+~快捷键,调出一个小文本款,然后粘贴以下代码: import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e6240 ...

  2. zabbix 图形是点状的_Zabbix的图形界面中文变成□□问题

    zabbix的图形界面中文变成□□问题 亲测有效!!! zabbix首次安装之后,往往图形界面中的中文显示为'□□',如图: 看起来很不舒服,如何让他显示为中文? 思考: 1:是否是数据库的字符问题? ...

  3. Java图形界面中文字符乱码显示小方框

    Java图形界面中文字符乱码显示小方框 解决方法:(IntelliJ IDEA) 在运行(RUN)中选择编辑配置(Edit Configuration) 虚拟机选项(VM options)中输入-Df ...

  4. 解决root用户登录Ubuntu12.04 LTS图形界面

    解决root用户登录Ubuntu12.04 LTS图形界面 刚更新完Ubuntu12.04LTS想尝尝鲜啊--结果杯了个具的--新版本的lightdm登录选项里没有其它用户的选项了,直接导致无法使用r ...

  5. python绘图设置标题出现乱码_解决python2 绘图title,xlabel,ylabel出现中文乱码的问题...

    Python绘图如何显示中文标题一个懂得以幽默态度面对自己缺点并将缺点变成自己专属的特色-这才是真正乐观勇敢的人. 采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚 ...

  6. matlab ubuntu 显示乱码_解决Linux中Matlab中文乱码问题

    解决 Linux 中 Matlab 中文乱码问题 由于 Linux 下 Matlab 的图形界面是用 Java 写的,所以只要搞定 Java 的中文显 示就行了. 1 . 我 Matlab2007a ...

  7. centos7语言中文乱码_解决CentOS 7命令行中文乱码的简单方法

    大多朋友使用 为了让大家能够快速解决CentOS 7命令行出现中文乱码的情况,这里RAKsmart中文指南就简单分析下解决方法,大家可以参考参考. 第一.检测是否安装中文语言包 首先使用终端(putt ...

  8. python读excel乱码_解决Python2.7读写文件中的中文乱码问题

    Python2.7对于中文编码的问题处理的并不好,这几天在爬数据的时候经常会遇到中文的编码问题.但是本人对编码原理不了解,也没时间深究其中的原理.在此仅从应用的角度做一下总结, 1.设置默认编码 在P ...

  9. ajax传输json数据格式乱码_解决Ajax加载JSon数据中文乱码问题

    一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { ...

最新文章

  1. pww区域连接特征提取算法
  2. 高数之差分方程---定义
  3. 读书印记 - 《注意力经济:如何把大众的注意力变成生意》
  4. Apache Kafka 1.0.0正式发布!
  5. 处理字符串_10_对字符串重新按字母排序重新组合
  6. 看完这篇,你还不能理解 ‘数据库架构’?趁早回家吧
  7. 华裔数学家张益唐:逆境中的数学人生
  8. activiti报错ProcessEngines.getDefaultProcessEngine()为null
  9. IDC:安全性、价格和低复杂性是企业采用SD-WAN的主要动因
  10. pycharm安装怎么选_安装新风系统,地送风和顶送风哪种?专业师傅分析,不纠结怎么选...
  11. 第十二章、LNMP架构(中)
  12. 20191206每日一句
  13. html阿里矢量图标库,矢量图标素材库_阿里巴巴矢量图标库的使用
  14. python股票编程_Python爬虫回测股票的实例讲解
  15. 根据父母身高预测儿子身高
  16. CentOS下安装cups实现局域网共享HP1020打印机
  17. 深入探索 Android 网络优化(二、网络优化基础篇)上
  18. SpringCloud Zuul配置
  19. NLP专题直播 | 详谈词向量技术:从Word2Vec, BERT到XLNet
  20. 支持1t内存的服务器主板,使劲砸钱,能不能把电脑内存达到1T?想不到

热门文章

  1. 使用HTMLParser模块解析HTML页面
  2. sqlserver关键字
  3. oracle的工具cmd,数据库命令行工具DBCLI
  4. PowerDesigner从数据库导入
  5. JVM内存原理及高级特性
  6. This relative module was not found ./cptable webpack
  7. 微信 开发 图片 上传 阿里云 oss 服务器
  8. oracle导入中文数据出现乱码
  9. linux查看基础硬件信息
  10. mybatis-plus 使用乐观锁修改