既存のデータによるデータベースエンコーディングの変更

latin1_swedish_ci (デフォルト)から utf8_general_ci にデータベース、テーブル、関連する列のエンコーディングを変更してヨーロッパやその他の文字を表示する場合は、既存のデータに適用されます。新しいインサートにのみ?

I currently have names showing up as Rubén which don't fix themselves even when changing that column's encoding to utf8_general_ci.

データをデータベースに再インポートする必要がありますか、既存のデータにエンコードの変更をインプレースで適用することはできますか?

3
OK。私は内部的に保存されたデータは問題ないかもしれないが、不適切にデコードされたと思った。
追加された 著者 Bojangles,
@Andre答えとしてそれを入れて、私はそれを受け入れます。私の問題は修正されました。ありがとうございました!
追加された 著者 Bojangles,
DBは、人間の目に実際にその文字が誤っていることをどのようにして知っていますか?知っているのは、それらの文字を正確に保存するように指示されていることだけです。だから、あなたは基本的に自分でそれを変換する必要があります。
追加された 著者 BalusC,
これは役立つかもしれません: mysqlperformanceblog.com/2007/12/18 /…
追加された 著者 Andre,
@JamWaffles:完了!
追加された 著者 Andre,

1 答え

これは役立つかもしれません:

UPDATE table SET column=CONVERT(CONVERT(column USING binary) USING utf8) WHERE id=123;

Source: http://www.mysqlperformanceblog.com/2007/12/18/fixing-column-encoding-mess-in-mysql/

2
追加された