« PreviousNext »

Entry

CakePHPで多言語(多国語)対応を行う場合の注意点その1

CakePHPで多言語(多国語)対応を行う場合は、app/config/i18n.sqlに定義されているSQLを実行してi18nテーブルを作成することになりますが、この際に作成されるi18nテーブルの文字コードを他のテーブルに合わせておかないと文字化けの原因になります。

特に共用サーバーの場合、データベースの文字コード(例えばEUC-JPなど)は変更不可の場合が多いため、テーブルの文字コードを例えば「UTF-8」にしたい場合は、

CREATE TABLE テーブル名 (列定義) DEFAULT CHARSET=utf8;

のようにテーブルに対して直接文字コードを指定して作成する場合が多いと思いますが、上記のi18n.sql内のSQLは

CREATE TABLE i18n (列定義);

と定義されており、そのまま実行するとこの場合はデータベースの文字コードであるEUC-JPでi18nテーブルが作成されますので、例えば「~」(全角チルダ)などで文字化けが発生してしまいますのでご注意ください。

Page Top

« PreviousNext »