最終的にMySQLにはUTF8で格納するようにしたい。
くまくま:文字化け問題を本気で直すに従って、my.cnfを編集すればよい。問題は、既に格納している奴をどうするか?という点。
とりあえず、既に格納されているデータの文字コードがわかっているならば、吐き出させる。
% mysqldump --defualt-character-set=CHAR_SET -u USER_NAME -p DB_NAME > FILENAME
で出力してみる。
その後、データベースを一度削除し、作りなおせばutf8で統一される。吐き出させたファイルをUTF8にエンコードし、ファイル中に存在する
ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=CHAR_CODE;
のCHAR_CODEをutf8に直して、格納しなおせばよい。たとえば、CHAR_CODEがlatin1になっている場合は以下のようにする。
% iconv -f EUC-JP -t UTF-8 FILENAME > FILENAME.utf8 % sed -e s/latin1/utf8/ FILENAME.utf8 > FILENAME.nolatin1 % mysql -u USER_NAME -p DBNAME < FILENAME.nolaitn1