|
DBとCGIでWebアプリケーションを作っていると必ず頭を悩ますのが文字コードの違いによる文字化けの問題で、その環境で動作する"EC-CUBE"にいたっても例外ではない。 文字化けの原因としては、 ・(A)DBインストール時の文字コードの設定 ・(B)DB作成時に指定する文字コード ・(C)プログラム側の文字コード の組み合わせがうまくいっていないことが多い。 "EC-CUBE"の場合は現在公開されている"1.4系"は"EUC-JP"、"2.0系"は"UTF-8"となっている。 ホスティングサーバを利用する時には既にDBのインストールは終わっているので、"phpPgAdmin"や"phpMyAdmin"といったブラウザ上でDB操作できるツールを利用して各DBを作成することが多い。 まずここで文字化けの原因が一つある。 DBの文字コードを"UTF-8"にして、"EUC-JP"で動作する"1.4系"を利用する文字コードが違うので文字化けを発生する。 ここはDB作成時も"EUC-JP"にすれば問題ない。 しかし、これでも文字化けは発生することがある。 それはDBインストール時に設定する文字コードの影響が大きい。 いくらDB作成時とプログラムを"EUC-JP"にしたところで、DBの根本が"UTF-8"や他の文字コードでは文字化けを起こしてしまう。 では、DBを再インストールして文字コードを変えるのかというと、ホスティングの場合は難しい。 しかも、MySQLをrpmでインストールするとデフォルトで"Latin1"になることが多い。 それを設定ファイルで"EUC-JP"や"UTF-8"にしている場合がある。 下の内容はサーバ権限のあるサーバでMySQLの文字コードを確認した結果だ。 文字コードは"Latin1"になっている。 ![]() そうなるとDB作成時にも"Latin1"としてやるほうが好ましい。 ![]() まだこれは一例だが、文字化けの原因にはさまざまなパターンがあるので随時作業内容をメモをして確認できるようにし、できれば開発環境も用意して試験できれば最適だ。 |
| << 前記事(2008/02/21) | トップへ | 後記事(2008/02/26)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2008/02/21) | トップへ | 後記事(2008/02/26)>> |