EC-CUBE+MySQLでの文字化け的なもの

一応、ショップとしては動いていたので。。ほったらかし。。何年だよ。

そう。ほったらかしにしていた文字コードの問題。

EC-CUBE 1系は、EUC_JPが基本でした。MySQLは。。文字化け問題が多い。

PostgreSQL に移行したいわけですが、その前に処方処置しないと、

現状どうにもなんない。


表。ショップサイトは何故かちゃんと文字表示できている。

データベースが失敗でUTF-8になっているためテレコ?で表はうまく表示される??

phpMyAdmin でデータベースを見ると。。文字化けしまくり(爆

ので、

Mysql文字化けの修復

Mysqlからデータのダンプ、リストアで修復する。

# mysqldump -u root -p test_db –default-character-set=latin1 > /tmp/dbbackup_test

# vi /tmp/dbbackup_test
 /*!40101 SET NAMES latin1 */;
  ↓
 /*!40101 SET NAMES ujis */;

 :%s/utf8/ujis/g ← テーブルなどのエンコードをすべてEUC_JPに変更

phpMyAdmin 上などからでも 「eucjpms_japanese_ci」 で

新しいデータベース(test_new_db)を作成。。そこにリストア・修復。

# mysql test_new_db -u root -p < /tmp/dbbackup_test

リストアすれば、一応ちゃんとした?!データベースが出来上がります。

さて、ここから EC-CUBE+MySQLでの文字化け根本対策。

「install.inc」で参照データベースを新しいデータベースのかえると、

こんどはショップ表が文字化けします。「???」だらけです。

EC-CUBEをインストールすると文字化けする人へ

「data/class/SC_DbConn.php」 の33行目あたり

「$this->dsn = $dsn;」 の後に

$buf = $objDbConn->prepare(‘SET NAMES eucjpms’) ;
$objDbConn->Execute($buf) ;

の2行を追加すれば。。

サイトのほうでもちゃんと表示できます。

これで、ずーっと放置していた文字化け問題が解決しました。

次は、PostgreSQL 移行でデータベースのパフォーマンスアップですな。

なんでEC-CUBE は、PostgreSQL に最適化されてるんですかね。。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
Highslide for Wordpress Plugin