【EC-CUBE】データベース内の文字化け対策
DBを作ったら、先にphpMyAdminでDBに接続。
上のタブで、SQLを開き、まずは、
status
または、
show variables like “char%”;
と打ち込んで、現在の文字コードを確認。
サーバの設定にあたる「character_set_server」以外をUTF8に揃える。
ので、
set names utf8;
または、
alter database 〜DB名 character set utf8; (←たぶんこっち。)
で変更。確認して変更されていればOK。
これで変更できない場合は、phpMyAdminのトップページなどから、「照合順序」で変えればいいかと。
character_set_serverは、サーバの設定なので、個別には変更できないが、専用サーバなどであれば、my.conf等で変更可能。
my.cnfの[mysqld]のところにdefault-character-set=utf8
と書いておけばOK。
2.3.2以前の場合は、それだけでは、システム動作時に文字化けに戻ってしまうので、
data/class/SC_DbConn.php
L64~
$this->conn = $objDbConn;
の手前に、
if (DB_TYPE == 'mysql') {
$objDbConn->query('SET NAMES utf8');
}
を追加。(参考:http://svn.ec-cube.net/open_trac/changeset/17559)この場合、my.cnfの設定は必要ない。