Knork: utf8 als latin1 => konvertierung per blob schlägt fehlt

Beitrag lesen

Ich habe eine Zeitlang - nicht wirklich sauber - utf-8-Daten in latin1-Datenbankfeldern gespeichert (mysql-DB).

  1. ALTER TABLE translations\_werte CHANGE varwert varwert BLOB NOT NULL
  2. ALTER TABLE translations\_werte CONVERT TO CHARACTER SET utf8
  3. ALTER TABLE translations\_werte CHANGE varwert 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.