Ich habe eine Zeitlang - nicht wirklich sauber - utf-8-Daten in latin1-Datenbankfeldern gespeichert (mysql-DB).
- ALTER TABLE
translations\_werte
CHANGEvarwert
varwert
BLOB NOT NULL- ALTER TABLE
translations\_werte
CONVERT TO CHARACTER SET utf8- ALTER TABLE
translations\_werte
CHANGEvarwert
varwert
TEXT NOT NULL
Das Problem an der ganzen Geschichte ist nur, dass die Felder gekürzt werden. Habe noch nicht rausgefunden, ob es da eine bestimmte Regel gibt
Auch wenn convert to keine Auswirkung auf Blobs haben soll: Probiere es, wie in der Anleitung zu convert to character set ausdrücklichst beschrieben, ohne Konvertierung:
ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
Dass bei dir Zeichen verloren gehen, könnte daran liegen, dass MySQL während deiner Umwandlungsprozedur über ungültige Bytefolgen stolpert und an der Stelle abbricht.