29.10.2013

UTF8-Probleme in mysql-Datenbanken

Beim Import einer Datenbank, die auf einem anderen Server exportiert wurde kann es zu Problemen mit den UTF8-Zeichen kommen.

Besonders ärgerlich ist, wenn die einzelnen Bytes eines UTF8-Zeichens fälschlicherweise beim Export selbst in UTF8 konvertiert wurden. Dann hat man Quargel wie ü statt den Umlauten dort stehen. Da nutzen auch keine Tools wie iconv mehr etwas, weil der Text eigentlich schon in perfektem UTF8 vorliegt. Nur halt mit kryptischen Zeichen statt Umlauten.

Da hilft ein kleines Skript, das das Tool "sed", das auf jedem Linuxsystem vorinstalliert sein sollte, verwendet:

#!/bin/bash

sed -i 's/Ä/Ä/g' $1
sed -i 's/ä/ä/g' $1
sed -i 's/Ö/Ö/g' $1
sed -i 's/ö/ö/g' $1
sed -i 's/Ãœ/Ü/g' $1
sed -i 's/ü/ü/g' $1
sed -i 's/ß/ß/g' $1

 Aufgerufen mit

./scriptname dateiname

kann das mit mysqldump exportierte File korrigiert und mit dem mysql-Befehl wieder importiert werden. Wahlweise können auch andere Sonderzeichen-Ersetzungen im Skript hinzugefügt werden.

Kategorie: Linux


 
Telefon:
E-Mail:
Fax:
Web:

+43 2682 24080
office(at)epb.at
+43 2682 205 7700 9963
zum Kontaktformular