さてさて、EC-CUBEをローカル環境でもテスト環境を構築しているのですが、ひとつ気になることがあります。
Mysqlの文字化けです。phpMyAdminを使ってデータを表示させると日本語文字が怪しげな文字に変換されてしまうのです。
EC-CUBEの画面上では問題なく表示されるので、放置していたのですが、せっかくなので対策を試みることにしました。
環境はMacなのでMAMPを使っている。
PHP 5.2.13
MySQL 5.1.44
EC-CUBE 2.4.4
文字化けはこんな感じです。

原因はphpMyAdminの設定の照合順序がデフォルトでlatin1~というのが使われているのが
問題のようでした。
ローカル環境のDBには幸い、たいしたデータが入っていないので
EC-CUBEを再インストールすることにしました。
再インストールの前にやることはまず、phpMyAdminでこの照合順序の変更を行います。
phpMyAdminの画面を開き、以下操作を実施します。
1.左メニューから該当のEC-CUBEで使うデータベースを選択する。
2.操作タブをクリックし、一番下の照合順序をlatin1~からutf8_general_ciに変更し、実行する。
すると、下図のようにSQLが実行され文字コードが変換される。

次に、EC-CUBEから接続する際の文字コード設定部分のコードを修正します。
修正といっても、コメントアウトされている部分を外すだけであるのでPHP初心者でも安心です。
このコードについてコメントされている部分を外す。
SC_DbConn.php 67行目から3行
//MySQL文字化け対策(MySQLで文字化けする場合は以下のコメントアウトをはずして動作確認してみてください。)
if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}
これで、実行してみると、文字化け見事に直りました。
