EC CUBEのインストール時の文字化けを解決する1つの方法
EC CUBEっていうソフトがあるんですが、これがまたいろいろとお話を聞くソフトなのですが・・
今お仕事で今関わっている案件で、EC CUBEをがっつりカスタムな案件があるのでとりあえずインストールしてみる。
しかしいきなり文字化け・・・ orz
どうやらmysqlの文字コードが「ujis」なのだが、ec cube2系の文字コードが「utf8」の為文字化けしているようだ。
data -> class -> SC_DbConn.phpを改変してみる。
// 既に接続されていないか、新規接続要望の場合は接続する。 if(!isset($objDbConn->connection) || $new) { if($dsn != "") { $objDbConn = DB::connect($dsn, $options); $this->dsn = $dsn; /* 新規追加 20080914 */ $buf = $objDbConn->prepare('SET NAMES utf8'); $objDbConn->execute($buf); /* 新規追加 20080914 END */
これでとりあえず文字化けは解消された。
ちなみにこの問題はかなり多くの方々が困っていた模様。
ec cubeの1系を使用している方は、以下のようにするといい。
$buf = $objDbConn->prepare('SET NAMES ujis); $objDbConn->execute($buf);
なぜならEC CUBEの1系のソースはEUC-JPで書かれているから。
これで問題ないかどうかサイトを見回ってみると、職業やらの部分部分がいまだに文字化けしている模様・・・
調べてみると、「data -> cache」フォルダの中をいったん全て削除することによって解決可能。
まあsmartyを使っているからよくよく考えたら当然かも・・・(だからsmarty嫌いww)
とりあえず自分用にもメモ・・