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
Inhaltsverzeichnis Eröffnungsszene Direktes Rende...
React ist eine JAVASCRIPT-Bibliothek zum Erstelle...
1. Verfeinern Sie den Selektor Durch die Verwendu...
Vue ruft die PC-Kamera auf, um Bilder in Echtzeit...
1. Online-Textgenerator BlindTextGenerator: Für D...
Inhaltsverzeichnis 1. Swap-Partition SWAP 1.1 Aus...
Zunächst müssen Sie einige Eigenschaften von HTML...
Inhaltsverzeichnis Hbase-Installation und -Konfig...
Mit der kontinuierlichen Entwicklung der Internetw...
In diesem Artikelbeispiel wird der spezifische Ja...
Konfigurieren von Java-Umgebungsvariablen Hier we...
Kürzlich habe ich MySQL verwendet, um Tabellendat...
Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...
Code kopieren Der Code lautet wie folgt: <!DOC...
Apache: Virtuellen Host basierend auf Port erstel...