博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zabbix图表出现中文乱码
阅读量:6332 次
发布时间:2019-06-22

本文共 1852 字,大约阅读时间需要 6 分钟。

  搭建完成Zabbix监控服务器之后,切换到中文语言,图表展示出现乱码,如图所示

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

  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的图表已经可以正确显示中文了

 

转载于:https://www.cnblogs.com/rnckty/p/7686843.html

你可能感兴趣的文章
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>
ASCII 在线转换器
查看>>
Linux内核同步:RCU
查看>>
Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)
查看>>
Java设计模式之五大创建型模式(附实例和详解)
查看>>
60 Permutation Sequence
查看>>
主流的RPC框架有哪些
查看>>
Hive学习之路 (七)Hive的DDL操作
查看>>
[转]mysql使用关键字作为列名的处理方式
查看>>
awesome go library 库,推荐使用的golang库
查看>>
树形展示形式的论坛
查看>>
jdbcTemplate 调用存储过程。 入参 array 返回 cursor
查看>>
C++中的stack类、QT中的QStack类
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>
Dubbo和Zookeeper
查看>>