Aktueller Standort: Startseite> Neueste Artikel> So behandeln Sie Multibyte-Zeichensätze (z. B. UTF-8) in mb_convert_case

So behandeln Sie Multibyte-Zeichensätze (z. B. UTF-8) in mb_convert_case

gitbox 2025-05-29

Warum verwenden Sie mb_convert_case anstelle von Strtolower oder Strtoupper ?

Die Standard -Strtolower- und Strtoupper -Funktionen unterstützen nur ASCII -Zeichen. Bei der Verarbeitung von Zeichen wie UTF-8-Codierung können sie nicht englische Zeichen nicht richtig konvertieren. Zum Beispiel:

 $text = "Γει? Σου Κ?σμε"; // griechisch
echo strtoupper($text); // Die Ausgabe kann falsch sein

Zu diesem Zeitpunkt ist mb_convert_case erforderlich:

 $text = "Γει? Σου Κ?σμε";
echo mb_convert_case($text, MB_CASE_UPPER, "UTF-8"); // Richtig in Großbuchstaben konvertieren

Detaillierte Erläuterung der Parameter

Der Funktionsprototyp von mb_convert_case lautet wie folgt:

 string mb_convert_case(string $string, int $mode, ?string $encoding = null)
  • $ String : Die zu konvertierte Zeichenfolge.

  • $ modus : Conversion -Modus, hauptsächlich:

    • Mb_case_upper : zur Kapitalisierung konvertieren

    • Mb_case_lower : in Kleinbuchstaben konvertieren

    • Mb_case_title : Die Kapitalisierung des ersten Buchstabens jedes Wortes

  • $ codierung : Zeichencodierung (wie UTF-8, GBK). Wenn nicht angegeben, wird mb_internal_encoding () standardmäßig verwendet.


Praktische Fähigkeiten teilen

1. Geben Sie die Codierung klar an

Oft ignorieren Entwickler die Codierungsparameter, was zu einem falschen Konvertierungsergebnis führt. Es wird empfohlen, den Code immer klar zu schreiben:

 $text = "na?ve fa?ade résumé";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8');

Ausgabe: na? Ve fa? Ade résumé

2. Wie kann man mit Chinesen umgehen?

mb_convert_case ändert den Zustand der chinesischen Zeichen nicht (da Chinesen keinen oberen und unteren Fall haben). Sie müssen jedoch immer noch die UTF-8-Codierung festlegen, ansonsten kann die Zeichenfolge abgeschnitten werden.

 $text = "Hallo World";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8'); // Ausgabe:Hallo WORLD

3.. Erster Briefkapitalisierung (Titelformat)

Geeignet für den Umgang mit Artikeln, News -Titeln usw.:

 $title = "le petit prince";
echo mb_convert_case($title, MB_CASE_TITLE, 'UTF-8'); // Le Petit Prince

Wenn sich HTML -Tags oder Entitäten im Text befinden, entfernen Sie diese bitte zuerst oder führen Sie eine entsprechende Verarbeitung durch, andernfalls wird die Ausgabe betroffen.

4. Verwenden Sie bei der Formulierung von Formulardaten

 $name = trim($_POST['name']);
$cleaned = mb_convert_case($name, MB_CASE_TITLE, 'UTF-8');

Stellen Sie sicher, dass die Benutzereingabe ein konsistentes Format hat, wenn Sie die Schnittstelle anzeigen, insbesondere für Dokumentnamen, Titelbalken usw.


Beispielanwendung: Standardisierung des Benutzerprofil -Anzeigeformates

Angenommen, Sie müssen das Feld des Namens im Benutzerprofil formatieren und anzeigen und die mehrsprachigen Eingaben unterstützen:

 function formatUserName($name) {
    return mb_convert_case(trim($name), MB_CASE_TITLE, 'UTF-8');
}

echo formatUserName("éMILIE du chatelet"); // émilie Du Chatelet

Sie können diese Funktion auch in der API -Schnittstelle zusammenfassen und die zurückgegebenen JSON -Daten in einem einheitlichen Format standardisieren. Das Beispiel lautet wie folgt:

 header('Content-Type: application/json');

$data = [
    'name' => mb_convert_case('sErGiO péRez', MB_CASE_TITLE, 'UTF-8'),
    'profile_url' => 'https://gitbox.net/user/sergioperez'
];

echo json_encode($data);