ラケシュ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.)