国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

解決zabbix監控因php問題導致圖形界面中文亂碼方法

瀏覽:4日期:2023-04-06 15:09:13

解決因編譯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問題導致圖形界面中文亂碼方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽: Zabbix
相關文章:
主站蜘蛛池模板: 广水市| 易门县| 濮阳县| 秀山| 新和县| 镇远县| 绥阳县| 广河县| 泰和县| 南昌市| 房产| 浦县| 濉溪县| 县级市| 河源市| 武清区| 溧水县| 拉孜县| 玉屏| 外汇| 万全县| 科技| 陇南市| 咸丰县| 保山市| 三穗县| 新余市| 门头沟区| 北碚区| 金华市| 津南区| 济源市| 安新县| 莱西市| 桃园市| 临漳县| 鸡西市| 洞头县| 咸丰县| 祁门县| 清水河县|