ラケシュ12345
Corretto?
Probabilmente quello che è successo quando è stato INSERTing
- Avevi la codifica utf8 corretta per i dati e
- SET NAMES latin1 -- per impostazione predefinita o per errore e
- La colonna (o tabella) in cui è stato memorizzato il testo è stata dichiarata con
CHARACTER SET latin1
, ancora possibilmente per impostazione predefinita.
Puoi verificare che i dati siano archiviati correttamente facendo
SELECT col, HEX(col) ...
Se recuperi quella stringa, l'esadecimale sarà E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95
. Nota come ci sono gruppi di 6 esadecimali, a partire da E383
nel caso di Katakana o EFBC
per le "cifre a larghezza intera".
Supponendo che la tabella indichi ancora latin1, nessun dato viene perso e ALTER in 2 fasi lo risolverà. In sintesi:
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;
dove le lunghezze sono abbastanza grandi e gli altri "..." hanno qualsiasi altra cosa (NON NULL, ecc.) era già sulla colonna.
(Non potevo dare una risposta chiara e completa a questa domanda fino a poco tempo fa.)