EC-CUBE:MySQL上で文字化け

参考:http://de-lab.com/article/eccube_install/

Mysql4.1以上だと、CMSツールを普通にインストールするとデーターベース側が文字化けするという問題が出ることがあります。

Mysql4.1以降は、PHPとの接続時に文字コードの自動変換機能が働くので、サーバー側の文字コードを勝手に変換してしまうため、文字コードが指定されていない場合、「laten1」などで出力されてしまうことがあります。

対策として、コアファイルを書き換えてエンコーディングを発行します。

data/class/SC_DbConn.php 51行目あたり ※下記コードの5,6行目を追加


if(!isset($objDbConn->connection) || $new) {
if($dsn != "") {
$objDbConn = DB::connect($dsn, $options);
$this->dsn = $dsn;
$buf = $objDbConn->prepare('SET NAMES utf8');
$objDbConn->execute($buf);
} else {
if(defined('DEFAULT_DSN')) {
$objDbConn = DB::connect(DEFAULT_DSN, $options);
$this->dsn = DEFAULT_DSN;
} else {
return;
}
}
}