mysql リストアで文字化け

文字化けする原因は、mysqldumpがデフォルトでは、文字コードをUTF-8で出力するようになっていて、フィールドの型がUTF-8でない場合は、自動でUTF-8に変換するためのようです。
つまり、mysqldumpするとlain1 -> UTF-8な変換が自動で行われ文字化けしちゃいます。
そもそも言ってしまうと latin1 は使わずに shift-jis とか utf8 にちゃんと変更しとけよって話なんですけどね。

では、ダンプとUTF8のDBへのリストアの手順。
ダンプは以下のコマンドで実行します。
mysqldump --default-character-set=latin1 -uroot --all-databses > db.dump

でもってリストアは。
db.dump の
DEFAULT CHARSET=latin1; → DEFAULT CHARSET=utf8;
にします。
vi とかで、:%s/latin1/utf8/g って感じで。

0 コメント: