Aktueller Standort: Startseite> Neueste Artikel> So bestimmen

So bestimmen

gitbox 2025-05-29

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.

Verstehen Sie die Funktion mb_get_info

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.

Stellen Sie fest, 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.

Achten Sie auf kleine Details

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

Beispielprojekt Hosting -Adresse

Wenn Sie das vollständige Beispiel sehen möchten, können Sie besuchen: https://gitbox.net/php/utf8-check-demo