発生した問題
WordPress.comのデータベースの中身をローカル環境(Localを使用)に反映する際
日本語の部分が文字化けしてしまった。
(タイトル、本文などすべて「???」となってしまった)
DBのエクスポートは普段どおりWP管理画面の設定のところからphpmyadminに入り、
sql, gzipなどの形式でエクスポートした(それでうまく行く場合がほとんど)。
格闘すること半日、原因が特定できた。
原因・解決方法
結論
ローカル環境のwp-config.phpの、以下の部分を'latin1'に書き換えた。
define( 'DB_CHARSET', 'utf-8' );
↓
define( 'DB_CHARSET', 'latin1' );
詳細
文字コードの設定は以下の通りである。
本番環境:
・wp-config.php:DB_CHARSETの記述なし
・データベース:「latin1_swedish_ci」(mysqlのデフォルト設定がこれらしい。)
修正前のローカル環境
・wp-config.php:'DB_CHARSET', 'utf-8'
・データベース:「latin1_swedish_ci」(localのAdminerEvoで「照合順序」をチェック)
修正後のローカル環境
・wp-config.php:'DB_CHARSET', 'latin1'
・データベース:「latin1_swedish_ci」
つまり、私のローカルで wp-configに書かれているDB_CHARSET(UTF-8)と
AdminerEvoのデータベースの「照合順序」(latin1)がチグハグになっていたため発生した問題と思われる。
だいぶパニクっていろいろ設定をいじっていたので 記憶違いもあるかもしれないが
少なくとも 私の環境ではこの設定を機に文字化けが修復できた。
追記:
あとからみると ローカルの「照合順序」が utf8_unicode_ci になっていた。
もはや仕組みはよくわからないが、いったんローカルで文字コードの辻褄を合わせたあとで
実態に即した utf8 へDBが自動的に?更新されるのかもしれない。