mb_internal_encoding('UTF-8')macht nichts von selbst, es setzt nur den Standard-Encoding-Parameter für jedenmb_Funktion. Wenn Sie keinmb_verwenden Funktion, es macht keinen Unterschied. Wenn dies der Fall ist, ist es sinnvoll, es so einzustellen, dass Sie die$encodingnicht übergeben müssen Parameter jedes Mal individuell.- IMO
mb_detect_encodingist meistens nutzlos, da es grundsätzlich unmöglich ist, die Codierung von unbekanntem Text genau zu erkennen. Sie sollten entweder wissen, in welcher Codierung ein Text-Blob vorliegt, weil Sie eine Spezifikation dazu haben, oder Sie müssen entsprechende Metadaten wie Header oder Meta-Tags parsen, in denen die Codierung angegeben ist. - Mit
mb_check_encodingEs reicht normalerweise aus, zu überprüfen, ob ein Textklecks in der Codierung gültig ist, in der Sie ihn erwarten. Ist dies nicht der Fall, verwerfen Sie es und geben Sie einen entsprechenden Fehler aus. -
Betrifft:
Wenn Sie Strings manipulieren, die Multibyte-Zeichen enthalten, dann ja, Sie müssen den
mb_verwenden Funktionen, um falsche Ergebnisse zu vermeiden. Die Kern-String-Funktionen arbeiten nur auf Byte-Ebene, nicht auf Zeichen-Ebene, was Sie normalerweise wünschen, wenn Sie mit Strings arbeiten. utf8_general_civs.utf8_binmacht nur beim Sortieren einen Unterschied , d. h. Sortieren und Vergleichen von Zeichenketten. Mitutf8_binDaten werden binär behandelt, d.h. nur identische Daten sind identisch. Mitutf8_general_cieine gewisse Logik wird angewendet, z. "é" sortiert zusammen mit "e" und Großbuchstaben werden als Kleinbuchstaben angesehen.