ラケシュ12345
Juist?
Wat er waarschijnlijk gebeurde toen INSERTing was
- U had de juiste utf8-codering voor de gegevens, en
- STEL NAMEN IN latin1 -- standaard of per ongeluk, en
- De kolom (of tabel) waarin de tekst is opgeslagen, is gedeclareerd met
CHARACTER SET latin1
, opnieuw mogelijk standaard.
U kunt controleren of de gegevens correct zijn opgeslagen door te doen
SELECT col, HEX(col) ...
Als je die string ophaalt, is de hex E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95
. Merk op hoe er groepen van 6 hexen zijn, beginnend met E383
in het geval van Katakana of EFBC
voor de "cijfers over de volledige breedte".
Ervan uitgaande dat de tabel nog steeds latin1 zegt, gaan er geen gegevens verloren en de 2-staps ALTER zal het repareren. Samengevat:
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;
waar de lengtes groot genoeg zijn en de andere "..." hebben wat anders (NIET NULL, enz.) al op de kolom stond.
(Tot voor kort kon ik deze vraag niet duidelijk en volledig beantwoorden.)