PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : falsches charset beim dump-Import



BiBe
13.04.2006, 22:08
Hi,
ich habe von einem Freund ein MySQL-Dump bekommen, das er offenbar in ISO-88591 erstellt hat.


# file -i dump.sql
dump.sql: text/plain; charset=iso-8859-1

Nun wollte ich dieses Dump über die Konsole in eine Datenbank importieren:


mysql -u bibe -p db1 < dump.sql --default-character-set=latin1_de

Leider werden aber (korrekte) utf8-Einträge erzeugt. Wie kann ich mysql dazu bringen, das charset nicht zu verändern und die Einträge in ISO-88591 zu erstellen?

Vielen Dank, viele Grüße
BiBe

x-lette
23.04.2006, 18:36
Nun wollte ich dieses Dump über die Konsole in eine Datenbank importieren:

mysql -u bibe -p db1 < dump.sql --default-character-set=latin1_de
Leider werden aber (korrekte) utf8-Einträge erzeugt. Wie kann ich mysql dazu bringen, das charset nicht zu verändern und die Einträge in ISO-88591 zu erstellen?
Wenn das exakt deine Kommandozeile ist, dann kann der Fehler daran liegen, daß du den Charset erst nach der Eingabeumleitung angibst. Damit hat es als Argument für mysql keine Bedeutung mehr und sollte eigentlich eine Fehlermeldung produzieren. Probier es mal so herum:

mysql -u bibe -p db1 --default-character-set=latin1_de < dump.sql
Um solche Felher zu vermeiden, empfiehlt es sich, wo immer möglich, auf Kdozeilenargumente zurückzugreifen und die einzulesende Datei entsprechend anzugeben.
Alternativ suche nach der Möglichkeit im Server das Standard-Encoding für Clients zu ändern. MySQL kenne ich nicht so gut, aber in PostgreSQL gibt es die Variable client_encoding, die pro Client gesetzt werden kann (also innerhalb der laufenden Session).