ラケシュ12345
Prawidłowo?
Prawdopodobnie co się stało, gdy WSTAWIANIE było
- Miałeś poprawne kodowanie utf8 dla danych i
- SET NAMES latin1 – domyślnie lub przez pomyłkę, i
- Kolumna (lub tabela), w której został zapisany tekst, została zadeklarowana za pomocą
CHARACTER SET latin1, prawdopodobnie domyślnie.
Możesz sprawdzić, czy dane są przechowywane prawidłowo, wykonując
SELECT col, HEX(col) ...
Jeśli pobierzesz ten ciąg, heksadecymalny będzie E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Zwróć uwagę, że istnieją grupy po 6 hex, zaczynające się od E383 w przypadku Katakany lub EFBC dla "cyfr o pełnej szerokości".
Zakładając, że tabela nadal mówi latin1, żadne dane nie zostały utracone, a 2-krokowa ALTER naprawi to. Podsumowując:
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;
gdzie długości są wystarczająco duże, a inne "..." mają to, co jeszcze (NOT NULL, itp.) było już w kolumnie.
(Do niedawna nie mogłem udzielić jasnej i kompletnej odpowiedzi na to pytanie.)