zabbix中文乱码解决方法

1、zabbix乱码是怎么照成的呢?zabbix使用DejaVuSan.ttf字体,不支持中文,导致中文出现乱码。解决方法很简单,把我们电脑里面字体文件传到zabbix服务器上。

2、找到本地C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下。

3、修改zabbix php配置文件

# cd /data/www/zabbix/ # 我zabbix安装目录

# sed -i 's/DejaVuSans/simkai/g' ./include/defines.inc.php

4、依旧乱码:通过以上的操作,大部分同学的乱码问题解决了,但是依旧有一些同学还是乱码?细心的群友提供另外一种情况:初始化数据库的时候未使用utf8编码所致.初始化数据库使用命令

create database zabbix default charset utf8;
或者my.cnf增加如下配置

default-character-set = utf8

5、替换了字体也没有解决zabbix生成图像的中文乱码问题

原因是php配置问题, php编译时如果指定–enable-gd-jis-conv选项即使指定了中文字体也会导至乱码.所以在编译php时不要指定–enable-gd-jis-conv参数. 因zabbix使用php imagettftext()函数来画图,imagettftext()在php官方文档中写到:

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).

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

发表评论


表情