dedlfix: UTF-8 zu Latin-1 konvertieren (MySQL)

Beitrag lesen

Hi!

MySQL 5.0.77 produziert bei mir folgendes.

MySQL oder MySQL in Zusammenarbeit mit dem phpMyAdmin? Denn mit dem Kommandozeilen-Client kann ich das Verhalten so nicht nachvollziehen.

SELECT [link:http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html@title=CONVERT](_latin1'ä' USING utf8) as foo
Erwartet: ä
Ergebnis: ä

Bei mir hat der PMA das ä als 4 Bytes gesendet, sagt der Hexdump vom Query-Log. Daraus entstehen 8 UTF8-Bytes, die beim Abfragen der Ergebnismenge wieder als 4 Zeichen angezeigt werden. Du lässt dich durch das angezeigte täuschen.

SELECT CONVERT(_utf8'ä' USING latin1) as foo
Erwartet: ä
Ergebnis: ä

Auch hier wieder 4 Byte, die nach Latin1 konvertiert 2 Zeichen ergeben.

Ich hab' in der Datenbank falsch codierte Inhalte und möchte diese "richtig" auslesen, aber meine Versuche scheitern wie obiges Beispiel mit dem statischen String zeigt. Doppelt falsch funktioniert, damit kann ich aber nichts anfangen ;)

Versuch das lieber mit einer Kopie der Daten anstatt einen Test über mehrere Systeme und Schnittstellen zu fahren. Alternativ geht auch ein Dump, und den mit einem Hexeditor zu kontrollieren, welche Kodierung ttatsächlich vorliegt, und den dann _unter_Nennung_der_Kodierung_ zu importieren.

Lo!