Auge: Zeichencodierung ändern

Beitrag lesen

problematische Seite

Hallo

Heute habe ich keine Zeit mehr, aber ich denke, ich werde demnächst mal versuchen, in der Original-Datenbank (lokales Backup) per phpMyAdmin oder HeidiSQL die Zeichenkodierung/Kollation zu ändern, bevor ich die Daten auslese und umschreibe.

Es ist nicht nur Charset und Kollation (letzteres ist nur für die alphabetische Sortierung zuständig, hier also nicht kriegsentscheidend), es ist auch der Charset der Datenbankverbindung, mit der du von einem Programm/Skript Daten lesen und schreiben lässt. Dafür gibt es in PHP spezielle Funktionen. In der MySQLi-Bibliothek ist das mysqli_set_charset beziehungsweise ihr OO-Pendant. Damit kannst du dann auch ISO-8859-1(5)-codierte Daten auslesen und von der DB-Engine automatisch in UTF-8 ausgeben lassen, wenn du genau diesen Charset für die Verbindung festlegst.

Bei MySQL ist noch wichtig, dass es die Charsets utf8 und utf8mb4 gibt. Der erste kann 3-Byte-Zeichen verwalten, der zweite auch 4-Byte-Zeichen, was dann zum Beispiel Emojis beinhaltet.

Dazu gehört aber auch, dass Skripte im selben Charset gespeichert und in diesem Charset vom Webserver ausgeliefert werden. Ebenfalls gehört dazu, dass der Webserver diesen Charset im Header ansagt, damit der Browser weiß, welchen Charset er bei der Ausgabe zu benutzen hat.

Tschö, Auge

--
200 ist das neue 35.