MySQL Client und Zeichenkodierung
MySQL Client und Zeichenkodierung
am 14.11.2006 12:19:25 von Karsten Wutzke
Ich lasse per Kommandozeile per "mysql [loginkram] < input-file.sql"
mehrere Skripte ablaufen. Das Problem ist, dass z.B. der MySQL Query
Browser (GUI Tool) die SQL-Dateien immer nur in UTF-8 abspeichert, egal
was die Codierung beim Laden/Öffnen ist. Der MYSQL Client spuckt aber
jedes Mal einen Syntaxfehler beim Ausführen aus. Am Anfang der UTF-8
codierten Dateien tauchen immer 3 Bytes auf (*), die den Error
produzieren, desweiteren sind alle Umlaute und ß Garbage. Wenn ich die
Dateien in ISO-8859 abspeicher hat der Client keine Probleme.
Wie, d.h. mit welcher Option für mysql --... bekomme ich den Client
dazu, dass er mit UTF-8 codierten SQL-Dateien genauso ganz normal
durchläuft wie mit ISO-8859-Codierung? Ich habe bereits
--default-character-set=3Dutf8 ausprobiert jedoch ohne irgendeine
Änderung...
Falls es nicht anders geht, darf ich halt mit dem Mysql Query Browser
keine Dateien mehr speichern... (ungewohnt dumm für ein MySQL-Tool)
Karsten
(*) Was sind diese 3 bytes eigentlich? So ne Art magic number?
Re: MySQL Client und Zeichenkodierung
am 14.11.2006 12:48:25 von Karsten Wutzke
Bin im Übrigen auf Windows... wenigstens mit Cygwin + bash ;-)
Karsten
Re: MySQL Client und Zeichenkodierung
am 14.11.2006 14:04:50 von sk
Karsten Wutzke schrieb:
> Ich lasse per Kommandozeile per "mysql [loginkram] < input-file.sql"
> mehrere Skripte ablaufen. Das Problem ist, dass z.B. der MySQL Query
> Browser (GUI Tool) die SQL-Dateien immer nur in UTF-8 abspeichert, egal
> was die Codierung beim Laden/Öffnen ist. Der MYSQL Client spuckt aber
> jedes Mal einen Syntaxfehler beim Ausführen aus. Am Anfang der UTF-8
> codierten Dateien tauchen immer 3 Bytes auf (*), die den Error
> produzieren, desweiteren sind alle Umlaute und ß Garbage.
Da hilft nur die drei Byte entfernen.
> (*) Was sind diese 3 bytes eigentlich? So ne Art magic number?
Die drei Bytes sind ein BOM
siehe http://de.wikipedia.org/wiki/Byte_Order_Mark
Jörg
Re: MySQL Client und Zeichenkodierung
am 14.11.2006 19:37:35 von Mike Lischke
Karsten Wutzke wrote:
> Ich lasse per Kommandozeile per "mysql [loginkram] < input-file.sql"
> mehrere Skripte ablaufen. Das Problem ist, dass z.B. der MySQL Query
> Browser (GUI Tool) die SQL-Dateien immer nur in UTF-8 abspeichert,
> egal was die Codierung beim Laden/Öffnen ist.
Das stimmt nicht. Du kannst sehr wohl ein ANSI Encoding auswählen
(dabei wird das gerade aktive Encoding im System verwendet). Sieh dir
mal den Save As Dialog genauer an, dort kann man das auswählen. Und QB
behält auch das vorgefundene Encoding (ANSI oder Unicode) bei.
Übrigens kann man, wenn es nur mal gelegentlich notwendig ist, auch
Notepad für die Konvertierung verwenden. Einfach Datei öffnen ->
Speichern unter (ANSI). Viele andere Editoren können das ebenfalls
(UltraEdit z.b).
Mike
--
www.mysql.com
Re: MySQL Client und Zeichenkodierung
am 17.11.2006 18:39:08 von Karsten Wutzke
Mike Lischke schrieb:
> Karsten Wutzke wrote:
>
> > Ich lasse per Kommandozeile per "mysql [loginkram] < input-file.sql"
> > mehrere Skripte ablaufen. Das Problem ist, dass z.B. der MySQL Query
> > Browser (GUI Tool) die SQL-Dateien immer nur in UTF-8 abspeichert,
> > egal was die Codierung beim Laden/Öffnen ist.
>
> Das stimmt nicht. Du kannst sehr wohl ein ANSI Encoding auswählen
> (dabei wird das gerade aktive Encoding im System verwendet). Sieh dir
> mal den Save As Dialog genauer an, dort kann man das auswählen. Und QB
> behält auch das vorgefundene Encoding (ANSI oder Unicode) bei.
>
> Übrigens kann man, wenn es nur mal gelegentlich notwendig ist, auch
> Notepad für die Konvertierung verwenden. Einfach Datei öffnen ->
> Speichern unter (ANSI). Viele andere Editoren können das ebenfalls
> (UltraEdit z.b).
>
> Mike
> --
> www.mysql.com
Hey, Dich kenn ich doch. Du hast doch mal in Delphi einen 3DS-Exporter
geschrieben...
;-)
Also, ums mal zu konkretisieren:
Öffne mal mit dem MySQL Query Browser irgendein SQL Skript. Dann
"Speichern Unter..." als ANSI. Tab schließen und Skript öffnen,
ändern, Ctrl-S drücken.
Schwupp sind die 3 Bytes wieder da. Iss das nich ärgerlich. Das macht
das Tool als Editor ziemlich useless...
Probiers mal, iss echt bek*tzt.
Berichte bitte mal wie's bei Dir ist...
Karsten
Re: MySQL Client und Zeichenkodierung
am 18.11.2006 10:47:08 von Mike Lischke
Karsten Wutzke wrote:
> Hey, Dich kenn ich doch. Du hast doch mal in Delphi einen 3DS-Exporter
> geschrieben...
Genaugenommen ist es ein 3DS *Importer* und ich habe auch noch einiges
mehr online (www.soft-gems.net).
> Öffne mal mit dem MySQL Query Browser irgendein SQL Skript. Dann
> "Speichern Unter..." als ANSI. Tab schließen und Skript öffnen,
> ändern, Ctrl-S drücken.
>
> Schwupp sind die 3 Bytes wieder da.
Hmm, schöner Mist. Das ist ein Bug. Mach bitte einen Eintrag auf
http://bugs.mysql.com. Ich bin gerade dabei die QB Bugs zu fixen, da
komme ich sicher auch recht schnell dazu.
Mike
--
www.mysql.com
Re: MySQL Client und Zeichenkodierung
am 21.11.2006 00:47:22 von Karsten Wutzke
Mike Lischke schrieb:
>
> Hmm, schöner Mist. Das ist ein Bug. Mach bitte einen Eintrag auf
> http://bugs.mysql.com. Ich bin gerade dabei die QB Bugs zu fixen, da
> komme ich sicher auch recht schnell dazu.
>=20
> Mike
> --=20
> www.mysql.com
Bug report abgesetzt.
Karsten