dedlfix: mysql - latin1 nach utf8 - umlaute

Beitrag lesen

echo $begrüßung;

hier nochmal mein vorgehen, was endgültig zu einem sauberen ergebnis zu führen scheint:

mysqldump --set-charset=latin1 --default-character-set=latin1 avl_db03 > avl_db03.latin1.dump.sql
iconv -f LATIN1 -t UTF-8 avl_db03.latin1.dump.sql > avl_db03.utf8.dump.sql

Den iconv-Schritt kannst du dir sparen. Lass doch die Daten in MySQL-Latin1/Win-1252.

nano avl_db03.utf8.dump.sql
suchen und ersetzen (case-sens.):

latin1_german1_ci utf8_unicode_ci
CHARSET latin1  CHARSET utf8
Ü   Ã^Ü
ü   Ã¼
Ö   Ã^Ö
ö   Ã¶
Ä   Ã^Ä
ä   Ã¤

Hier musst du dich auch nicht verrenken. Wenn dein Editor Win-1252 oder ISO-8859-1 spricht, kannst du die Umlaute direkt eintippen und musst nicht die UTF-8-Bytes da reinfummeln.

mysql --default-character-set=utf8 avl_db02 < avl_db03.utf8.dump.sql

Und dem erzählst du dann einfach, dass du Character-Set latin1 verwendest und lässt MySQL den Rest machen. Das passt schon. Wenn die Kodierungen der Felder andere sind als die Kodierung der Verbindung, wandelt MySQL das selbständig um.

echo "$verabschiedung $name";