Bei der Arbeit mit Saiten mit PHP ist es wichtig sicherzustellen, dass sich die Zeichenfolgen im richtigen Codierungsformat befinden, insbesondere in Szenarien mit mehrsprachigen Inhalten. UTF-8 ist derzeit eine der beliebtesten Charakter-Codierungen und unterstützt die meisten Sprachen der Welt. In diesem Artikel wird festgelegt, wie eine String-Kodierung von UTF-8 durch die Funktion MB_Get_info in Kombination mit anderen Mbstring-Erweiterungsfunktionen ist.
Zunächst wird MB_Get_info () selbst verwendet, um die Konfigurationsinformationen der Mbstring-Erweiterung zu erhalten, z. B. die aktuelle interne Codierung, Erkennungsreihenfolge usw. Es erkennt nicht direkt die String-Codierung . Sie kann jedoch mitteilen, ob die aktuelle Umgebung zum Erkennen von UTF-8 konfiguriert ist.
Normalerweise kombinieren wir die Funktion MB_DETECT_ENCODING (), um die Codierungserkennung zu implementieren.
Um die aktuelle Mbstring -Konfiguration anzuzeigen, können Sie sie so schreiben:
<?php
// Überprüfen mbstring Aktuelle Konfiguration
print_r(mb_get_info());
?>
Die Ausgabeinformationen umfassen:
Internal_encoding
http_input
http_output
Sprache
coding_translation
DECTECT_ORDER
Ersatz_Character und so weiter.
Wenn der Detect_order UTF-8 enthält, können wir mb_detect_encoding () verwenden, um festzustellen, ob die Zeichenfolge UTF-8 ist.
In Kombination mit der Funktion MB_DETECT_ENCODING () können Sie so beurteilen:
<?php
function is_utf8($string) {
// Bei Bedarf,Sie können zuerst sicherstellen detect_order Enthalten in UTF-8
$info = mb_get_info();
if (strpos($info['detect_order'], 'UTF-8') === false) {
// Stellen Sie die Erkennungsreihenfolge manuell ein
mb_detect_order(['UTF-8', 'ISO-8859-1', 'ASCII']);
}
// verwenden mb_detect_encoding Komm, um zu testen
return mb_detect_encoding($string, 'UTF-8', true) === 'UTF-8';
}
// Beispiel
$text = "Dies ist ein Test";
if (is_utf8($text)) {
echo "Die Zeichenfolge ist UTF-8 Codierung";
} else {
echo "String ist nicht UTF-8 Codierung";
}
?>
Erklären Sie diesen Code:
Überprüfen Sie zunächst die aktuelle Zeichen für Zeichenerkennungen über mb_get_info () ;
Wenn es keinen UTF-8 gibt, verwenden Sie MB_DETECT_ORDER (), um es vorübergehend anzupassen.
Verwenden Sie MB_DETECT_ENCODING () und geben Sie den dritten Parameter ein , um die strenge Erkennung anzuzeigen.
Stellen Sie schließlich fest, ob das Rückgabeergebnis 'UTF-8' ist.
Stellen Sie sicher, dass PHP über Mbstring -Erweiterungen installiert und aktiviert ist.
MB_DETECT_ENCODING () ist nicht 100% genau, insbesondere in kurzen Saiten oder reinen englischen Zeichenfolgen, aber für allgemeine Anwendungen zuverlässig genug.
Wenn sich Ihre Anwendung viel mit Codierungsproblemen befasst, wird empfohlen, die Codierungsformate von Eingabe und Ausgabe zu vereinheitlichen und die interne Codierung explizit durch mb_internal_encoding ('utf-8') festzulegen.
Wenn Sie das vollständige Beispiel sehen möchten, können Sie besuchen: https://gitbox.net/php/utf8-check-demo