dedlfix: MySQL: Alles nach UTF-8 Umwandeln

Beitrag lesen

echo $begrüßung;

Da bis jetzt noch nicht viele Daten in der DB stehen habe ich es "per Hand" geändert, also eine (UTF-8) PHP-Datei geschrieben, mit der ich die problematischen Datenbankeinträge geändert habe. Allerdings besteht jetzt das Problem, dass phpMyAdmin die Zeichen nicht mehr richtig anzeigt, was fürs nachträgliche Bearbeiten schlecht ist!
Klick mich

Dann hast du den Fehler gemacht, auf deiner Verbindung keine Kodierungsangabe festgelegt zu haben, MySQLs Default-Wert auf Latin1 stehen zu haben, die Daten trotzdem als UTF-8 gesendet zu haben, was der MySQL aber als Latin1 angesehen hat. Er betrachtet nun jedes Byte einer UTF-8-Nicht-ASCII-Sequenz als eigenes Latin1-Zeichen und kodiert diese einzelnen Zeichen auch entsprechend um, wenn jemand eine andere Kodierung wünscht (der PMA beispielsweise).

Eine Lösung wäre, alles zu exportieren (DROP TABLE ankreuzen nicht vergessen). Wenn PHP mit iconv-Extension (oder zur Not recode) ausgestattet ist, dann sollte beim Export eine Kodierungsangabe wählbar sein. Dort iso-8859-1 wählen. (Alternativ, wenn keine Kodierungsangabe beim Export zu machen geht, Datei in einem UTF-8-fähigen Editor als UTF-8-kodiert öffnen, und als ISO-8859-1 speichern.) Import-Funktion wählen, da aber utf-8 angeben. Umlaute kontrollieren. Alle PHP-Scripte, die UTF-8-kodierte Daten senden korrigieren und nach jedem Verbindungsaufbau mysql(i)_set_charset() ausführen oder ein SET NAMES Statement absetzen.

echo "$verabschiedung $name";