EC-CUBEのサーバ移行に伴う文字化けについて
EC-CUBEでサーバ移行をする場合に、データベースの文字化けに悩まされたことはないでしょうか?
この問題についてなのですが、場合によって対処法は異なってきますが、場合によっては対応することが困難な場合が多いです。
まず、EC-CUBEを利用しているサーバによっては、データベースへの接続やエクスポートを「phpmyadmin」などのソフトによってしか行えない場合があります。
この場合、phpmyadmin上で文字化けをしている場合は、phpmyadminの設定を変更するかして、文字化けしないデータを出力できるようにしないと、データの移行は難しいです。この場合の解決方法としては、EC-CUBE上のphpの処理でデータをCSVファイルに出力して、データを移行する方法等が考えられます。(既存のデータ出力プログラムのカスタマイズなどですね。)
一方、サーバへのSSHなどでのアクセスが可能な場合は、データベースのバックアップに、
–default-character-set=binary
のオプションをつけてやったり、明示的に文字コードを指定したデータをバックアップ→復元することで、文字化けが解決する場合があります。
ただし、サーバの設定によっては、そもそもデータベース上で文字化けをおこしている場合があり、その場合は文字化けしたデータしかバックアップできない場合があります。
この場合の対処法としては、EC-CUBE側の処理でCSVファイルなどに必要なデータを落とし込んでから移行するなどが考えられます。
推奨するのは、最初にEC-CUBEをインストールした際に、phpmyadminやSSHなどのソフトでデータベース上のデータが文字化けをしていないかどうか確認をすることです。ここで問題なければ、後々苦労することもないので、、。
最初にインストールする際に、プログラム上で明示的にDB接続時の文字コードを指定する処理を付け加えることで、大抵の場合は文字化けを回避できます。
どうしても難しい場合は、様々な対応を検討する必要がでてくるでしょう。