MAMP を使いローカル環境で WordPress をインストールしたところ、wp-config.php 内の文字コード設定(下記参照)を削除してしまったらしく、MySQLの照合順序が latin1 となってしまいました。
/** データベースのテーブルを作成する際のデータベースのキャラクターセット */ define('DB_CHARSET', 'utf8'); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define('DB_COLLATE', '');
そのままの状態で phpMyAdmin でデータベース内を見ると文字化けしていませんでしたが、サイト上では盛大に文字化け。逆に、管理画面からデータを登録し直すと phpMyAdmin で見たときに盛大に文字化けするという事態に陥ってしまいました。
こういうときは、一旦データベースのデータをダンプし、ダンプデータ内の文字コード設定を変更してから再度インポートしなおせば大丈夫です。
# latin1 で一旦ダンプする /Applications/MAMP/Library/bin/mysqldump --user=ユーザー名 --password=パスワード --default-character-set=latin1 データベース名 > データベース名.sql
dumpファイルの中のlatin1をutf8に置換
/*!40101 SET NAMES latin1 */; ↓ /*!40101 SET NAMES utf8 */; /*!40101 SET character_set_client = latin1 */; ↓ /*!40101 SET character_set_client = utf8 */; ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; ↓ ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;