解决zabbix监控因php问题导致图形界面中文乱码方法

 更新时间:2021年5月7日 16:35  点击:1780

解决因编译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问题导致图形界面中文乱码方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对猪先飞网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

[!--infotagslink--]

相关文章

  • php生成二维码中文乱码问题解决方法

    最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个...2016-11-25
  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24
  • PHP json_encode() 函数详解及中文乱码问题

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<&#63;php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • php中iconv编码转换来解决中文乱码的问题

    用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些 代码如下 复制代码 ...2016-11-25
  • php mail发邮件标题中文乱码的问题解决办法

    本文章来给大家介绍php mail发邮件标题中文乱码的问题解决办法,希望到此类问题的朋友可进入参考。 当使用下面的PHP语句发送电子邮件的时候,如果编码和接收邮箱编码...2016-11-25
  • Linux zabbix agent部署及配置方法详解

    这篇文章主要介绍了Linux zabbix agent部署及配置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-21
  • Zabbix监控方案-官方最新4.4版本【推荐】

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。这篇文章主要介绍了Zabbix监控方案-官方最新4.4版本,需要的朋友可以参考下...2021-05-07
  • 解决PHPWord导出生成Word中文乱码问题

    PHPWord是一个可以把相关文件生成word文档的插件了,但由于是老外开发的对于gbk支持不好,所以我们在导出带有中文的word时会出现乱码问题,下面本文就PHPWord中文乱码问题...2016-11-25
  • Linux zabbix自定义监控及报警实现过程解析

    这篇文章主要介绍了linux zabbix自定义监控及报警实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-21
  • PHP中截取中文乱码解决办法

    如果ASCii码大于0xa0就是半个汉字;了解substr()、mb_substr()、ord()。 现在常用的编码格式是UTF8,GBK,GBK2312,BIG5。GBK是GBK2312的升级。现在我开发中遇到的基本都...2016-11-25
  • Zabbix远程执行命令的示例详解

    这篇文章主要介绍了Zabbix远程执行命令,本文主要配置验证zabbix执行远程命令的相关知识,通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值 ,需要的朋友可以参考下...2021-05-07
  • zabbix利用python脚本发送报警邮件的方法

    这篇文章是是用外部脚本python实现zabbix的报警机制的。对于zabbix3.0此处存在一个小改动,忙活了一天才找到原因哒。下面就来看看详细的介绍吧,有需要的朋友们可以参考借鉴。...2021-05-07
  • Zabbix系统端口监控状态

    这篇文章主要介绍了Zabbix系统端口监控状态,可以使用zabbix自带的key进行监控...2021-05-07
  • iis伪静态中文url出现乱码的解决办法

    这篇文章主要介绍了iis伪静态中文url出现乱码的解决办法,需要的朋友可以参考下...2017-07-06
  • 详解如何调用zabbix API获取主机

    Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。这篇文章主要介绍了如何调用zabbix API获取主机。...2021-05-07
  • .Net获取URL中文参数值的乱码问题解决方法总结

    这篇文章主要介绍了.Net获取URL中文参数值的乱码问题解决方法,总结分析了针对URL参数传递中出现的乱码问题与相应的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下...2021-09-22
  • Zabbix邮件报警设置方法

    这篇文章主要介绍了Zabbix邮件报警设置方法,在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱...2021-05-07
  • zabbix自定义监控nginx状态实现过程

    这篇文章主要为大家介绍了zabbix如何自定义监控nginx状态的实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-10-30