ラケシュ12345
正解ですか?
おそらく挿入時に何が起こったのか
- データに対して正しいutf8エンコーディングがあり、
- SET NAMES latin1-デフォルトまたは誤って、
- テキストが格納された列(またはテーブル)は、
CHARACTER SET latin1
で宣言されました 、おそらくデフォルトで。
を実行すると、データが正しく保存されていることを確認できます。
SELECT col, HEX(col) ...
その文字列をフェッチすると、16進数はE383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95
になります。 。 E383
から始まる6つの16進数のグループがあることに注意してください。 カタカナまたはEFBC
の場合 「全幅桁」の場合。
テーブルにまだlatin1と表示されていると仮定すると、データは失われず、2ステップALTER それを修正します。要約:
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;
ここで、長さは十分に大きく、他の「...」には、すでに列にあるもの(NOT NULLなど)があります。
(ごく最近まで、この質問に対する明確で完全な回答を提供することはできませんでした。)