Lösen Sie das Problem der verstümmelten chinesischen Zeichen in der grafischen Oberfläche des Zabbix-Überwachungssystems, das durch das Hinzufügen der Option -enable-gd-jis-conv beim Kompilieren von PHP verursacht wird Phänomen: PHP-Kompilierungsparameter: veranschaulichen: Wenn PHP mit der aktivierten Option --enable-gd-jis-conv kompiliert wird, werden Nicht-ASCII-Zeichen (wie chinesische Schriftzeichen, Pinyin, Griechisch und Pfeile) als EUC-JP-Zeichen (in phpinfo „JIS-codierte Schriftarten“ genannt) behandelt, was zu verstümmelten Zeichen führt (da westliche Schriftarten keine Kana- oder chinesischen Schriftzeichen haben, werden sie normalerweise als Kästchen angezeigt). Die Funktion imagettftext() wird verwendet, um Zeichen in ein Bild zu schreiben. Dieses Problem wird durch diese Funktion verursacht. Ich habe mehrere unvollständige Tutorials im Internet überprüft. Das Folgende ist mein Produktionspraxisbetrieb in der Version zabbix3.2, Version php7.2 Methode 1: Kompilieren und installieren Sie PHP neu und deaktivieren Sie dabei die Option -enable-gd-jis-conv. Diese Methode ist teurer. Methode 2: Da die Produktionsumgebung PHP schon lange verwendet, weiß ich nicht, ob es Anwendungen gibt, die es verwenden. Daher wage ich es nicht, es einfach neu zu kompilieren. Daher löse ich es gemäß Methode 2 Erster Schritt: Ändern Sie die Datei Funktion to_entities($string){ $len = strlen($string); $buf = ""; für($i = 0; $i < $len; $i++){ wenn (ord($string[$i]) <= 127){ $buf .= $string[$i]; } sonst wenn (ord ($string[$i]) < 192) { //unerwartetes 2., 3. oder 4. Byte $buf .= "?"; } sonst wenn (ord ($string[$i]) < 224) { //erstes Byte der 2-Byte-Sequenz $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 31) << 6) + (ord($string[$i + 1]) & 63) ); $i += 1; } sonst wenn (ord ($string[$i]) < 240) { //erstes Byte der 3-Byte-Sequenz $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 15) << 12) + ((ord($string[$i + 1]) & 63) << 6) + (ord($string[$i + 2]) & 63) ); $i += 2; } anders { //erstes Byte der 4-Byte-Sequenz $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; } } $buf zurückgeben; } Schritt 2: Suchen Sie in der Datei nach der Funktion imagettftext() (insgesamt drei Stellen). Ändern Sie den letzten Parameter $string in Zusammenfassen Oben ist die Methode, die ich Ihnen vorgestellt habe, um das Problem verstümmelter chinesischer Schriftzeichen in der grafischen Benutzeroberfläche der Zabbix-Überwachung aufgrund von PHP-Problemen zu lösen. Ich hoffe, sie wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: So erfassen Sie Ausnahmen in React
>>: Optimieren Sie die Speichereffizienz von BLOB- und TEXT-Spalten in InnoDB-Tabellen
Protokollieren Sie die Installation und Verwendun...
1. Mathematische Funktionen ABS(x) gibt den Absol...
Stapelweises Ersetzen eines Teils der Daten eines...
1. Sehen Sie sich die Feldtypen in der Tabelle an...
Hintergrund Als ich heute mit anderen Projektteam...
HTML Quelltext: <a onclick="goMessage();&...
In diesem Artikel wird der spezifische Code zum S...
Hallo zusammen, heute werde ich mit Ihnen die WeP...
Docker virtualisiert eine Brücke auf dem Host-Rec...
Grundlegende Syntax Sie können eine Ansicht mit d...
In diesem Artikel wird hauptsächlich die Breadcru...
1. Entpacken Sie die Datei in das aktuelle Verzei...
Vor ein paar Tagen habe ich einen von Yu Bo getei...
Inhaltsverzeichnis Hintergrund Wirkung Ideen Hint...
1. Einführung in Apache Bench ApacheBench ist ein...