Rozgryzłem to. Użyłem wbudowanego w mysql hex
funkcja zrzucenia wpisu, o którym wiedziałem, że jest zły.
select hex(column) from table where id=666;
Następnie wybrałem słowa (te liczby wciśnięte między „20”) i odkryłem, że mój obraźliwy zestaw bajtów to w rzeczywistości x'C3A2E282AC2671756F743B'
. Odpowiada to sposobowi, w jaki widziałem to zakodowane w PHP i przez mój system (jako e2 80
) Nie wiem iw tym momencie nie obchodzi mnie to.
Aby zweryfikować, przed zniszczeniem danych, podłącz je z powrotem do mysql:
select x'C3A2E282AC2671756F743B';
+---------------------------+
| x'C3A2E282AC2671756F743B' |
+---------------------------+
| â€" |
+---------------------------+
1 row in set (0.00 sec)
Tak więc, używając zapytania replace jak powyżej, udało mi się jednocześnie pozbyć wszystkich błędnych danych.
Dla przypomnienia było to:
update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');
Naprawdę mam nadzieję, że komuś się to przyda. Chociaż kodowanie snafus wydaje się być dość powszechne w mysql, szukałem wszędzie i nie mogłem znaleźć wyjaśnienia tego ostatecznie dość prostego procesu.