MAMP の MySQL で照合順序が latin1 のデータベースを作成してしまったときの対処法

MAMP を使いローカル環境で WordPress をインストールしたところ、wp-config.php 内の文字コード設定(下記参照)を削除してしまったらしく、MySQLの照合順序が latin1 となってしまいました。

/** データベースのテーブルを作成する際のデータベースのキャラクターセット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');
照合順序が「latin1_swedish_ci」に…

照合順序が「latin1_swedish_ci」に…

そのままの状態で 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;

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく