设为首页 收藏本站
查看: 1128|回复: 0

[经验分享] zabbix图表出现中文乱码

[复制链接]

尚未签到

发表于 2018-1-1 13:41:05 | 显示全部楼层 |阅读模式
  搭建完成Zabbix监控服务器之后,切换到中文语言,图表展示出现乱码,如图所示
DSC0000.png

  按照网上流传的上传windows下的字体的方法,还是不行,最后发现是PHP编译时的问题:
DSC0001.png

  php在编译时开启了-enable-gd-jis-conv,问题原因:
  如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。imagettftext()函数是将字符写入到图片的函数,这个问题就是由这个函数导致的;
  所以要解决这个问题就有两种方式:
  第一种重新编译安装php,禁用-enable-gd-jis-conv选项,这种方式代价较大;
  第二种就是修改php代码:
  1、在include/gaphs-inc.php文件中找到imagettftext()这个函数;
  2、找到文件后将一下这段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;
  
}
  

  将以上代码添加到zabbix/include下的graphs-inc.php文件中,之后依次修改该文件中的imagettftext()函数,将最后一个参数$string修改为to_entities($string);至此不用重启服务就会发现zabbix的图表已经可以正确显示中文了

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430523-1-1.html 上篇帖子: Zabbix-Agent 客户端安装配置 下篇帖子: zabbix 3.2.4 使用详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表