EC-CUBE

説明 [#vd6d7b3f]

ECCUBEで文字化けが発生する場合、DBとECCUBEの文字コードに差異がある場合が原因の可能性があります。

ECCUBEではUTF-8でサイトが構成されていますが、MySQLのデフォルトはlatin1がデフォルトの文字コードです。

対処手順 [#p273ffbd]

+MySQLの「/etc/my.cnf」でデフォルト文字コードをUTF-8に変更 +MySQLのサービス再起動 +mysqlでログインして、「show create database データベース名;」で文字コードを確認 以上で対処完了です。

もしも上記対処を実施しても、文字化けが発生していた場合は、chacheを削除してください。

削除対象:eccube/data/cache ※削除除外ファイル→mtb_constants.php

なお、DBの文字コードを変更することができず、latin1でECCUBEを運用する場合は下記対処を実施してください。

 ※注4:文字化け等が発生する場合には、環境にあわせて変更して下さい。
 ※データベース内が文字化けする場合の対処
  eccube_dir/data/class/SC_DbConn.php
  の33行目の
  $this->dsn = $dsn;の下に下記2行を追加。
  $buf = $objDbConn->prepare(‘SET NAMES データベースの文字コード’);
  $objDbConn->execute($buf);
 元:http://xoops.ec-cube.net/modules/newbb/viewtopic.php? topic_id=1145&forum=2&post_id=3641#forumpost3641
 
 ex:latin1_general_ci
 
 参考:http://tmpla.info/archives/1145