Neben der Einstellung default_charset
in der php.ini, können Sie den richtigen Zeichensatz mit header()
aus Ihrem Code heraus, vor jeder Ausgabe:
header('Content-Type: text/html; charset=utf-8');
Die Arbeit mit Unicode in PHP ist einfach, solange Sie wissen, dass die meisten der String-Funktionen funktionieren nicht mit Unicode, und einige können Strings völlig verstümmeln . PHP betrachtet "Zeichen" als 1 Byte lang. Manchmal ist das in Ordnung (zum Beispiel, explodieren() sucht nur nach einer Bytefolge und verwendet sie als Trennzeichen - es ist also egal, nach welchen Zeichen Sie tatsächlich suchen). Aber manchmal, wenn die Funktion tatsächlich für die Arbeit mit Zeichen PHP hat keine Ahnung, dass Ihr Text Multi-Byte-Zeichen enthält, die in Unicode vorkommen.
Eine gute Bibliothek, die Sie sich ansehen sollten, ist phputf8 . Damit werden alle "schlechten" Funktionen umgeschrieben, so dass Sie sicher mit UTF8-Strings arbeiten können. Es gibt Erweiterungen wie die mb_string Ich bevorzuge jedoch die Bibliothek, weil sie portabler ist (aber ich schreibe Produkte für den Massenmarkt, daher ist das für mich wichtig). Aber phputf8 kann sowieso mb_string hinter den Kulissen verwenden, um die Leistung zu erhöhen.
22 Stimmen
Hier ist eine Einführung in Kodierungen im Allgemeinen und Kodierungen in PHP im Besonderen: Was jeder Programmierer unbedingt über Kodierungen und Zeichensätze für die Arbeit mit Text wissen muss
0 Stimmen
Einige aktuelle Diskussionen über PHP 7 deuten darauf hin, dass es keine Änderungen an der "offiziell aufgegebenen" Position von 2010 gibt... Es gibt etwas mehr über "PHP7 und UTF-8"?
0 Stimmen
Dieses Problem ist weit verbreitet. Aber es gibt keine schnelle Lösung, Sie müssen Folgendes einrichten
utf-8
für jeden von ihnen einzeln - MySQL 5, PHP 5 ODER Apache 2.0 Stimmen
Die Zeitzone des Datenbankservers ist ebenfalls eine wichtige Einstellung, die gewählt werden muss. Ich empfehle, UTC (`set time_zone='+0:00`` für MySQL) als Server-Standard zu verwenden.