Bei der mehrsprachigen Entwicklung von PHP ist die Fallumwandlung von Strings einer der häufigsten Anforderungen. Obwohl die Standard- Strtoupper- Funktion einfach und einfach zu bedienen ist, unterstützt sie keine Multi-Byte-Codierung (z. B. UTF-8), was bei der Verarbeitung nicht englischer Zeichen zu verstümmelten oder Conversion-Fehlern führt. Um dieses Problem zu lösen, stellt PHP die Funktion MB_strtoupper bereit, die Multi-Byte-Zeichenfolgen korrekt verarbeiten und die Fallkonvertierung in Umgebungen mit mehrsprachiger Sprache implementieren kann.
Aber auch MB_StrtoUpper ist möglicherweise nicht in der Lage, Hauptstädte korrekt umzuwandeln, wenn Sie nicht auf einige wichtige Details achten. In diesem Artikel wird sichergestellt, wie mb_strtoupper die Kapitalisierung in mehrsprachigen Umgebungen genau umwandelt.
Mb_strtoupper hat einen zweiten Parameter $ codieren , der das Codierungsformat der Zeichenfolge angibt. Wenn nicht angegeben, ist die von mb_internal_encoding () zurückgegebene Codierung normalerweise UTF-8, jedoch nicht unbedingt.
Um eine genaue Konvertierung zu gewährleisten, wird dringend empfohlen, die Codierung klar anzugeben, insbesondere die am häufigsten verwendeten Codierungen in mehrsprachigen Umgebungen wie UTF-8.
<?php
$text = "stra?e"; // Deutsch“Straße”,Enthält Sonderzeichen ?
$uppercase = mb_strtoupper($text, 'UTF-8');
echo $uppercase; // STRASSE
?>
In diesem Beispiel wird Mb_strtoupper konvertieren ? Richtig für SS , was Strtoupper nicht tun kann.
Wenn Sie Multibyte -String -Operationen in Ihrem Code ausgiebig verwenden, wird empfohlen, interne Codierung global festzulegen, um die Probleme zu vermeiden, die durch Vergessen verursacht werden, die Codierung anzugeben.
<?php
mb_internal_encoding('UTF-8');
$text = "привет"; // Russisch“Hallo”
echo mb_strtoupper($text); // ПРИВЕТ
?>
Dies stellt sicher, dass UTF-8 standardmäßig verwendet wird, selbst wenn die Codierung in jedem Aufruf nicht angegeben ist.
Obwohl Mb_strtoupper die meisten Multibyte -Zeichen verarbeiten kann, haben einige Sprachen spezielle Fallkonvertierungsregeln, wie z. B. türkisch gepunktete und dotlos i.
Für diesen Fall können Sie MB_CONVERT_CASE und LACEA -Optimierung kombinieren:
<?php
setlocale(LC_CTYPE, 'tr_TR.UTF-8'); // Richten Sie türkische Regionen auf
$text = "istanbul";
$uppercase = mb_convert_case($text, MB_CASE_UPPER, 'UTF-8');
echo $uppercase; // ?STANBUL (Etwas mit ?)
?>
Mb_strtoupper selbst berücksichtigt die Regeln für die Gebietsschema nicht, während MB_CONVERT_CASE in einigen PHP -Versionen und -umgebungen freundlicher ist.
PHP bietet auch MB_CONVERT_CASE , das mehrere Fallkonvertentypen (einschließlich Titelfall) unterstützt und manchmal anstelle von mb_strtoupper verwendet werden kann.
<?php
$text = "héllo wórld";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8'); // HELLO WóRLD
?>
Geben Sie immer eine Codierung an , UTF-8 wird empfohlen.
Stellen Sie die interne Codierung global ein, um Auslassungen zu vermeiden.
Verwenden Sie die entsprechenden Gebietsschema -Einstellungen für spezielle Sprachen .
Wählen Sie mb_strtoupper oder mb_convert_case entsprechend Ihren Anforderungen .
Auf diese Weise kann die Genauigkeit der String-Fallumwandlung in einer mehrsprachigen Umgebung gewährleistet werden.