Tutto ok! Quindi questo è quello che deve essere successo:
interfaccia utente (UTF-8) → controller (UTF-8) → modello (ISO-8859-1) → database (UTF-8, ma riceve ISO-8859-1)
Quindi i campi sono stati configurati per utilizzare la codifica UTF-8, ma ricevono dati codificati ISO-8859-1. Volevo convertire i dati codificati in modo errato in UTF-8.
Poiché i dati erano in realtà codificati ISO-8559-1, ho risolto il mio problema con il seguente piccolo "hack" MySQL:
UPDATE `table` SET `column` = convert(cast(convert(`column` using latin1) as binary) using utf8)
Cortesia ABS su StackOverflow.
Grazie per il vostro tempo a esaminare il mio problema, ragazzi! :)