MySQLで、latin1_swedish_ciなどの文字化けを解消

DBの文字コードのことなど気にしないままMTをインストールして、ある時サーバーの移転やMySQLのバージョンアップなんかが必要になった時にDBの日本語データが文字化けしてたりする。
これって意外とよくあるケースだと思います。(よくあるのかな…少なくとも自分はたまにあります。)

utf8_general_ciじゃないといけないのにデフォルトの文字コードがlatin1_swedish_ciなんかになってるもんだから、「ãæªãƒŸå“ç‰ç」という風に文字化けが発生してニッチもサッチもいかない状況です。
こういった状況でも、何とか解決方法はあるようです。


流れとしては、

1、文字化けしているデータをバイナリに変換する
2、バイナリからUTF8に変換する

という流れです。

ALTER TABLE テーブル名 MODIFY フィールド名 BINARY(255);


ALTER TABLE テーブル名 MODIFY フィールド名 VARCHAR(255) CHARACTER SET utf8;



という流れで、バイナリからUTF8に変換していけば文字化けを解消できると思います。


ただ…テンプレートデータなどはデータ容量が多いので255では収まらずデータが削除されてしまいますね。そういう場合は、以下のサイトで自力で変換していくしかないです。

MIME Header Decode Service

変換ツールがいろいろある中でこのサイトだけがきちんと変換ができました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です