Eu descobri. Eu usei o
hex
embutido do mysql função para despejar uma entrada que eu sabia que era ruim. select hex(column) from table where id=666;
Em seguida, selecionei as palavras (esses números entre "20"s) e descobri que meu conjunto de bytes ofensivo era na verdade
x'C3A2E282AC2671756F743B'
. Como isso corresponde à maneira como o vi codificado em PHP e pelo meu sistema (como e2 80
) Eu não sei e neste momento, eu realmente não me importo. Para verificar, antes de destruir os dados, você os conecta de volta ao mysql:
select x'C3A2E282AC2671756F743B';
+---------------------------+
| x'C3A2E282AC2671756F743B' |
+---------------------------+
| â€" |
+---------------------------+
1 row in set (0.00 sec)
Então, usando a consulta de substituição como acima, consegui me livrar de todos os dados ruins de uma só vez.
Para o registro foi:
update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');
Eu realmente espero que isso seja útil para alguém. Embora a codificação pareça ser bastante comum no mysql, procurei em todos os lugares e não consegui encontrar uma explicação para esse processo, em última análise, bastante simples.