1.拷贝中文字体到zabbix的web端的fonts目录下例如:/var/www/html/zabbix/fonts/msyh.ttf,并且把后缀改为ttf
2.修改zabbix的web端/include/defines.inc.php
//define('ZBX_FONT_NAME', 'DejaVuSans'); define('ZBX_FONT_NAME', 'msyh'); //define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name
3.这时候大部分可以修复了,但是我是个例外,按上面的步骤修改后,图片乱码依旧,最终从一个帖子中看到,是因为编译php时–enable-gd-jis-conv参数引起。
PHP官方解释:
*虽然imagettftext()文档标明只接受UTF-8编码,但如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头)会被当成EUC-JP编码(phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)Although imagettftext()documentation indicates it only accepts UTF-8 encoding, but if–enable-gd-jis-conv is specified when compiling PHP, then non-ASCII characters(like Chinese, accented characters, Greek and arrows) will be (mis-)treated asEUC-JP encoding (referred to as “JIS-mapped Japanese Font Support” in phpinfo)leading to mojibake (this usually shows up as hollow rectangles, as most fontsfor western text lacks glyphs for kanji or kana)
4.重新编译PHP,去掉–enable-gd-jis-conv参数,问题解决
转载请注明出处fullstackdevel.com:SEAN是一只程序猿 » zabbix中文乱码问题
评论前必须登录!