ラケシュ12345
Správně?
Pravděpodobně to, co se stalo, když INSERTing bylo
- Měli jste správné kódování utf8 pro data a
- NASTAVIT JMÉNA latin1 -- ve výchozím nastavení nebo omylem a
- Sloupec (nebo tabulka), do kterého byl text uložen, byl deklarován pomocí
CHARACTER SET latin1, opět možná ve výchozím nastavení.
Správné uložení dat můžete ověřit provedením
SELECT col, HEX(col) ...
Pokud tento řetězec načtete, šestnáctkové číslo bude E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Všimněte si, že existují skupiny po 6 hexech počínaje E383 v případě Katakana nebo EFBC pro "číslice v celé šířce".
Za předpokladu, že tabulka stále uvádí latin1, žádná data se neztratí a 2krokový ALTER opraví to. Shrnuto:
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;
kde jsou délky dostatečně velké a ostatní "..." mají cokoli jiného (NOT NULL, atd.) již na sloupci.
(Donedávna jsem na tuto otázku nemohl dát jasnou a úplnou odpověď.)