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